我正在用 Java 编写一个 RESTful Web 服务。这个想法是“削减”一个 XML 文档,去掉所有不需要的内容(~98%),只留下我们感兴趣的标签,同时保持文档的结构,如下所示(我无法提供实际的出于保密原因的 XML 内容):
<sear:SEGMENTS xmlns="http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib" xmlns:sear="http://www.exlibrisgroup.com/xsd/jaguar/search">
<sear:JAGROOT>
<sear:RESULT>
<sear:DOCSET IS_LOCAL="true" TOTAL_TIME="176" LASTHIT="9" FIRSTHIT="0" TOTALHITS="262" HIT_TIME="11">
<sear:DOC SEARCH_ENGINE_TYPE="Local Search Engine" SEARCH_ENGINE="Local Search Engine" NO="1" RANK="0.086826384" ID="2347460">
[
<PrimoNMBib>
<record>
<display>
<title></title>
</display>
<sort>
<author></author>
</sort>
</record>
</PrimoNMBib>
]
</sear:DOC>
</sear:DOCSET>
</sear:RESULT>
</sear:JAGROOT>
</sear:SEGMENTS>
当然,这只是我们感兴趣的标签的结构——还有数百个标签,但它们无关紧要。
方括号 ( []
) 不是 XML 的一部分,它表示该元素<PrimoNMBib></PrimoNMBib>
是子列表的元素并且出现多次 - 每次匹配来自 RESTFUL 服务的搜索。
我一直在尝试用正则表达式解析文档,只留下上面显示的结构段以及 的值,<title>
同时<author>
删除标签之间的所有其他内容,包括其他标签,但是我无法得到它为我的生活工作......
以前我使用 XSLT 尝试过,但是由于未解决的原因也不起作用......我已经问过一个关于 XSLT 实现的问题......
无论如何,我非常感谢提示/提示/解决方案如何使用正则表达式和 Java 解决这个问题......