Java 可以使用Apache Digester过滤动态xml叶标记吗?

Java 可以使用Apache Digester过滤动态xml叶标记吗?,java,xml,blacklist,apache-commons-digester,Java,Xml,Blacklist,Apache Commons Digester,我以前使用过Apache digester,喜欢基于分支的xml标记搜索。 将标记指定为 h\a\b\ 这是非常直观的 现在我想做一个xml过滤项目,但apache digester似乎不起作用,原因很简单,因为无法访问底层xml标记。正如常见问题所说: 如何将一些xml作为文本字符串嵌套在标记中 经常有人问,如何将嵌套在文档中的某些XML(特别是XHTML)提取为字符串,例如将下面“body”标记的内容提取为字符串: …一些xml代码 如果您可以修改上述内容,将所需文本包装为CDATA部分,那

我以前使用过Apache digester,喜欢基于分支的xml标记搜索。 将标记指定为 h\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看起来几乎可以这样做,但我找到的所有应用程序都是用于选择某个东西,而不是删除它。你有这样一个例子吗?

没关系,用XPath实现了这一点