我正在使用第三方提供的一些 XML,这些 XML 的结构无法支持我们的特定需求。该文件为空 <PRTPAGE>
可以出现在标记中任何位置的标签。我试图找到最后一个 PRTPAGE
出现在特定起始标记之前的标记(在本例中为 RULE
标记)。
因为不能保证这两个标签除了根元素之外还有任何共同的父级,所以我不知道如何做到这一点。这很可能是 PRTPAGE
我正在寻找的标签深深嵌套在 RULE
中标记前一个兄弟,因为它是 RULE
的直接前一个兄弟标签。我目前正在使用org.w3c.dom
使用 Java 来解析 XML,但我愿意使用其他库。
编辑:
很难包含完整的示例,因为文件太长了。 XML 旨在模仿打印文档。 PRTPAGE
标签代表分页符,它实际上可以出现在任何地方,并且包含下一页的页码属性。我试图找出每个 RULE
的页码标签开始于。
最佳答案
您可以使用 XStream 库。 About
读取 PRTPAGE
的“别名”和RULE
如xstream.alias("PRTPAGE", String.class);
现在,您还需要存储和读取换行符并将其放入 Map<Integer, String>
中加上别名,这样你就可以找到最后一个 PRTPAGE
换行符比下一个更高的标签 RULE
标签
关于java - 如何查找另一个标签之前最后一次出现的 XML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59270353/