Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaDOM迭代节点文本内容_Java_Xml_Dom - Fatal编程技术网

使用JavaDOM迭代节点文本内容

使用JavaDOM迭代节点文本内容,java,xml,dom,Java,Xml,Dom,假设我有一个XML文件,为清晰起见添加了如下空白: <stuff> text1 <tag1 attribute1="value1"> text2 </tag1> text3 <tag2 attribute2="value2"> text4 <tag3 attribute3="value3"> text5 <

假设我有一个XML文件,为清晰起见添加了如下空白:

<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