假设我有一个看起来像这样的XML文件(为了清晰起见添加了空格):
<stuff>
text1
<tag1 attribute1="value1">
text2
</tag1>
text3
<tag2 attribute2="value2">
text4
<tag3 attribute3="value3">
text5
</tag3>
text6
</tag2>
text7
</stuff>
使用java DOM解析器,我可以通过调用与getTextContent()
标记对相对应的Element
上的stuff
方法来获取文本。这将产生字符串:
text1 + text2 + text3 + text4 + text5 + text6 + text7
但我真正喜欢的是迭代文本部分并根据它周围的标签对执行适当的操作,依此类推,所以我最终得到的就是
text1 + f(tag1, attribute1, value1, text2) + text3 + f(tag2, attribute2, value2, text4 +
f(tag3, attribute3, value3, text5) + text6) + text7
我该怎么做?
答案 0 :(得分:0)
我明白了:虽然只有标记对及其内容计为Element
,但每个文本部分都是Node
(它是Element
的超接口),并且节点方法getChildNodes()
返回NodeList
,其中包含正确顺序的所有节点。 node instanceof Element
可用于查看哪些节点是标记对,getTagName()
,getAttribute(String name)
和getAttributes()
可用于检索标记信息。非Element
节点也有getTextContent()
方法。