在我已经存储的复杂XML中,就像String一样,我必须进行一些text/xml处理。目标是找到节点的起始索引节点。除了节点(节点/元素类参考)我也有关于嵌套信息:整数的数组说,在哪个孩子应该介入。例如。数组:XML文本处理
2 1 0
而定树
root
|--root-child0
|--root-child1
|--root-child2
|--root-child2-child0
|--root-child2-child1
|--root-child2-child1-child0
我寻找根的child2-child1-child0
是否有任何干净可能性找到这样的项目。只是字符串查找(String.indexOf())是不够的 - 在我的XML文件中有许多相同的标签。除此之外,还存在一个额外的困难 - 在一些父母和子女之间可以存在一个额外的标签(收藏)。 (如根的child2唯一的孩子可能是收集和根的child2-child0和根的child2-child1此收藏的儿童)
--edit
如果这能帮助 - 除了上面提到的嵌套信息之外,我还可以获得与正在搜索的节点的路径上的节点相对应的节点名称。
--edit 2
有了这样的xml文件
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
</book>
</catalog>
假设我Node对象引用以价格标签有值5.95。 Additionaly我对嵌套信息:
1 3
说,这是第二次(从0记数)的书的目录和标签来回在这本书(ID =“bk102”)。
我要的是为什么我不能用这个简单的方法来得到类似
xmlRawBody.indexOf("<price>5.95</price>").
?因为有可能相同的标签会出现在其他地方。我必须使用提到的附加嵌套信息。
只是想知道你为什么想知道一个给定节点的xml文件的字符的数据流中的位置? – gigadot
在编辑 –
选择它据我知道,因为当你想操作DOM对象不需要他们,有关位置的信息的XML解析后丢失。大多数XML编辑器使用较低级别的解析器来处理这个问题,例如,带有XML语法的ANTLR。 – gigadot