Вставка элемента в документ с помощью Jsoup
Здравствуйте, я пытаюсь вставить новый дочерний элемент в корневой элемент документа следующим образом:
Document doc = Jsoup.parse(doc);
Elements els = doc.getElementsByTag("root");
for (Element el : els) {
Element j = el.appendElement("child");
}
В приведенном выше коде только один корневой тег находится в документе, поэтому цикл цикла будет выполняться только один раз.
В любом случае, элемент вставляется в качестве последнего элемента корневого элемента "root".
Есть ли способ вставить дочерний элемент в качестве первого элемента?
Пример:
<root>
<!-- New Element must be inserted here -->
<child></child>
<child></chidl>
<!-- But it is inserted here at the bottom insted -->
</root>
Ответы
Ответ 1
Посмотрите, поможет ли это вам:
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());
Вывод:
<root>
<newchild></newchild>
<child></child>
<child></child>
</root>
Чтобы расшифровать, в нем говорится:
- Выберите корневые элементы
- Возьмите первый корневой элемент
- Возьмите дочерние элементы этого корневого элемента
- Перенесите первого ребенка
- До этого ребенка вставьте этот элемент
Ответ 2
Очень похоже, используйте prependElement() вместо appendElement():
Document doc = Jsoup.parse(doc);
Elements els = doc.getElementsByTag("root");
for (Element el : els) {
Element j = el.prependElement("child");
}