java - 如何查找另一个标签之前最后一次出现的 XML 标签

标签 java xml

我正在使用第三方提供的一些 XML,这些 XML 的结构无法支持我们的特定需求。该文件为空 <PRTPAGE>可以出现在标记中任何位置的标签。我试图找到最后一个 PRTPAGE出现在特定起始标记之前的标记(在本例中为 RULE 标记)。

因为不能保证这两个标签除了根元素之外还有任何共同的父级,所以我不知道如何做到这一点。这很可能是 PRTPAGE我正在寻找的标签深深嵌套在 RULE 中标记前一个兄弟,因为它是 RULE 的直接前一个兄弟标签。我目前正在使用org.w3c.dom使用 Java 来解析 XML,但我愿意使用其他库。

编辑:

很难包含完整的示例,因为文件太长了。 XML 旨在模仿打印文档。 PRTPAGE标签代表分页符,它实际上可以出现在任何地方,并且包含下一页的页码属性。我试图找出每个 RULE 的页码标签开始于。

最佳答案

您可以使用 XStream 库。 About

读取 PRTPAGE 的“别名”和RULExstream.alias("PRTPAGE", String.class);

现在,您还需要存储和读取换行符并将其放入 Map<Integer, String> 中加上别名,这样你就可以找到最后一个 PRTPAGE换行符比下一个更高的标签 RULE标签

关于java - 如何查找另一个标签之前最后一次出现的 XML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59270353/

相关文章:

java - 是否可以使现有的 mapreduce 程序从输入文件的指定偏移量开始运行

java - Spring Boot Amazon AWS S3 存储桶文件下载 - 访问被拒绝

java - 为什么我的客户端线程/监听器没有收到来自服务器的广播消息?

javascript - 当我使用元素数组时,Jquery element.text() 错误 "is not a function"

android - XML 中的 TextInputEditText requestFocus 导致呈现问题

java - 图表未按预期呈现

java - 将圆圈移动到随机位置

php - 使用xml缓存数据

.net - 在 Visual Studio 2012 中生成 XML 序列化程序集不起作用

xml - 查询字符串中不区分大小写的xpath 1.0