Я занимался довольно простой XML-обработкой в python и теперь мне нравится ElementTree способ ведения дел.
Есть ли что-то похожее и простое в использовании в Java? Я нахожу модель DOM немного громоздкой и нахожу, что пишу намного больше кода, чем я хотел бы делать простые вещи.
Или я спрашиваю не то?
Может быть, мой вопрос: есть ли лучший вариант, чем классы "XMLUtils", которые я вижу в некоторых местах, когда люди реализуют свой код, чтобы упростить свой код при работе с DOM?
Добавим здесь немного о том, почему мне нравится ElementTree, так как вопрос был задан.
- Простота (я думаю, что все кажется простым после работы с DOM)
- Похоже на естественную посадку в питоне
- Требуется очень мало кода с моей стороны.
Я пытаюсь придумать простой пример кода, чтобы проиллюстрировать, но хороший пример сложно привести.
Вот попытка, хотя. Это просто добавляет тег со значением и атрибутом к существующей строке XML.
from xml.etree.ElementTree import *
xml_string = '<top><sub a="x"></sub></top>'
parsed = fromstring(xmlstring)
se = SubElement(parsed, "tag")
se.text = "value"
se.attrib["a"] = "x"
new_xml_string = tostring(parsed)
После этого new_xml_string будет
<top><sub a="x" /><tag a="x">value</tag></top>
Не пример, который действительно охватывает все, но все же. Также есть довольно простой цикл по тегам, когда вы хотите что-то делать, простое тестирование на наличие тегов, атрибутов и других вещей.