使用JavaDOM迭代节点文本内容
假设我有一个XML文件,为清晰起见添加了如下空白:使用JavaDOM迭代节点文本内容,java,xml,dom,Java,Xml,Dom,假设我有一个XML文件,为清晰起见添加了如下空白: <stuff> text1 <tag1 attribute1="value1"> text2 </tag1> text3 <tag2 attribute2="value2"> text4 <tag3 attribute3="value3"> text5 <
<stuff>
text1
<tag1 attribute1="value1">
text2
</tag1>
text3
<tag2 attribute2="value2">
text4
<tag3 attribute3="value3">
text5
</tag3>
text6
</tag2>
text7
</stuff>
但我真正想要的是遍历文本部分,并根据它所包围的标记对对对每个部分执行适当的操作,依此类推,所以我最终得到的结果如下
text1 + f(tag1, attribute1, value1, text2) + text3 + f(tag2, attribute2, value2, text4 +
f(tag3, attribute3, value3, text5) + text6) + text7
如何做到这一点?我找到了答案:虽然只有标记对及其内容算作元素,但每个文本部分都是一个节点,它是元素的超级接口,节点方法getChildNodes返回一个节点列表,其中包含按正确顺序排列的所有节点。可以使用node instanceof元素查看哪些节点是标记对,并且可以使用getTagName、getAttributeString name和getAttributes检索标记信息。非元素节点也有一个getTextContent方法
text1 + f(tag1, attribute1, value1, text2) + text3 + f(tag2, attribute2, value2, text4 +
f(tag3, attribute3, value3, text5) + text6) + text7