2012-03-30 14 views
10

Witam Próbuję wstawić nowy element podrzędny w elemencie głównym dokumentu takiego:Wstawianie elementu w dokumencie przy użyciu Jsoup

Document doc = Jsoup.parse(doc); 
    Elements els = doc.getElementsByTag("root"); 
    for (Element el : els) { 
     Element j = el.appendElement("child"); 
    } 

w powyższym kodzie tylko jeden tag korzeń jest w dokumencie tak zasadniczo pętla uruchomi się tylko raz.

W każdym razie element jest wstawiany jako ostatni element głównego elementu "root".

Czy istnieje sposób, w jaki mogę wstawić element potomny jako pierwszy element?

Przykład:

<root> 
<!-- New Element must be inserted here --> 
<child></child> 
<child></chidl> 
<!-- But it is inserted here at the bottom insted --> 
</root> 
+0

czy możesz wysłać prosty przykład? e wyników, które próbujesz osiągnąć? –

+0

@ B.Anderson Zaktualizowałem mój post. –

Odpowiedz

14

sprawdzić, czy to pomaga się:

String html = "<root><child></child><child></chidl></root>"; 
    Document doc = Jsoup.parse(html); 
    doc.select("root").first().children().first().before("<newChild></newChild>"); 
    System.out.println(doc.body().html()); 

wyjściowa:

<root> 
<newchild></newchild> 
<child></child> 
<child></child> 
</root> 

rozszyfrować, to mówi:

  1. Wybierz elementy korzeniowych
  2. chwycić pierwszy element główny
  3. Grab dzieci na tym elemencie głównym
  4. chwycić pierwsze dziecko
  5. Przed tym dzieckiem wstawić ten element
4

bardzo podobne, użyj prependElement() zamiast appendElement():

Document doc = Jsoup.parse(doc); 
Elements els = doc.getElementsByTag("root"); 
for (Element el : els) { 
    Element j = el.prependElement("child"); 
} 
Powiązane problemy