之前我使用过Apache digester,并喜欢基于分支的xml标签搜索。 将标记指定为 ħ\ A \ B \ 非常直观。
现在我想做xml过滤项目,但是apache digester似乎不会起作用,因为没有办法到达底层的xml标签。正如常见问题所说:
如何将一些嵌套在标签中的xml作为文字字符串?
经常会问一些文档中嵌套的XML(特别是XHTML)如何作为字符串提取,例如将下面“body”标签的内容提取为字符串:
......一些xml代码......
如果您可以修改上述内容以将所需文本包装为CDATA部分,那么事情很容易; Digester只会将该CDATA块视为单个字符串:
......一些xml代码......
如果无法做到这一点,那么你需要使用NodeCreateRule创建一个表示body标签及其子节点的DOM节点,然后将该DOM节点序列化为文本。
请记住,Digester只是标准XML解析器之上的一个层,标准XML解析器没有选择只停止解析特定元素的输入 - 除非它知道该元素的内容是一个字符块( CDATA)。
如果有什么东西使用相同的模式系统,我可以用来过滤xml?我的想法是使用用户提供的模式并将其列入黑名单,并复制其他所有内容。
或许有一种方法可以在Apache Digester中找到匹配的位置(xml上的位置,而不仅仅是显示的文本)。这足以让我通过保留副本并跳过匹配来复制其他文本。
编辑:我已经发现XPath看起来几乎可以做到这一点,但我找到的所有应用程序都是为了选择一些东西而不是删除它。你有这方面的例子吗?
答案 0 :(得分:0)
没关系,设法用XPath做到了。