我在python中做了很多简单的XML处理,并且逐渐成长为类似 ElementTree的做事方式.
在Java中是否有类似且易于使用的东西?我发现DOM模型有点麻烦,并且发现自己编写的代码比我想做的简单事情要多得多.
还是我问错了?
也许我的问题是:有没有比"XMLUtils"类更好的选择我看到人们在某些地方实现在处理DOM时简化代码?
在这里添加一点点关于为什么我喜欢ElementTree,因为问题被问到了.
我试图用一个简单的代码示例来说明,但是很难给出一个很好的例子.这是一次尝试.这只是将一个带有值和属性的标记添加到现有的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)
Run Code Online (Sandbox Code Playgroud)
之后,new_xml_string是
<top><sub a="x" /><tag a="x">value</tag></top>
Run Code Online (Sandbox Code Playgroud)
不是一个真正涵盖所有内容的例子,但仍然如此.当你想做东西时,还有一个相当简单的循环标签,可以轻松测试标签和属性的存在以及其他东西.
说实话,Java中的所有XML API都很糟糕,你可以改变你自己的suckage水平,这可能会变得可怕/缓慢到可管理/体面到甚至令人惊讶的好.
这主要源于Java API尽可能符合W3C DOM的事实,事实上,Xerces(Java当前的原生XML解决方案)自豪地遵从大量与XML相关的W3C规范,正如您可以从他们看到的那样首页.
但是,实际的Xerces API使用起来非常不愉快,并且因为多年来已经出现了多个其他Java XML库.目前最受欢迎的是
最后但绝对不是最不重要的我只需要提及StAX只是因为它不同,它实际上是事件驱动的XML流式API.出于好奇,绝对值得一看.
PS.我目前正在编写自己的XML解析器/导航器作为练习,但尚未确定它将具有哪种API.我的目标是易用性,到目前为止在Java XML API中似乎很少见,但我不完全确定我将提供什么样的API.Python的ElementTree看起来很有趣,但由于我并不完全熟悉它,您是否想简要总结一下您觉得它的确切内容?
| 归档时间: |
|
| 查看次数: |
2519 次 |
| 最近记录: |