我正在尝试将一些XML文档解析为DOM,以便我可以针对它运行XPath查询。我的代码是用Java编写的,并且一直在使用Xerces org.apache.xerces.parsers.DOMParser实现。
我只对XML的某些部分感兴趣,在元素elementareAbout下,可以忽略其他元素。
<top>
<elementICareAbout>...</elementICareAbout>
<elementToIgnore>...</elementToIgnore>
</top>
XML文件的大小可能非常大,我不想保留内存中的元素,我不需要将其作为处理的一部分,我希望在/ top / elementICareAbout中返回XPath查询数据,但/ top / elementToIgnore只会返回任何内容(因为我不需要它)。
查看Xerces DOMParser或JAXP API我没有看到任何明确忽略某些元素的方法,以便在解析后它们不是内存中DOM树的一部分?
是否有一种很好的方法可以从根据我需要的部分量身定制的XML文件构建部分DOM文档?
答案 0 :(得分:0)
您可以编写SAX过滤器并将其插入(SAX)解析器和文档构建器之间的处理管道中。或者使用相当少的编码,您可以编写XSLT 3.0流式转换。或者您可以编写一个XQuery来选择所需文档的各个部分,并使用支持文档投影的查询处理器运行它。这完全取决于你对Java / DOM编码的结构 - 我更倾向于使用高级语言。
答案 1 :(得分:0)
您还可以通过标记名获取元素。 例如,如果您有一个xml文件,请调用Question.xml。 Question.xml 在java文件中,您可以执行以下操作:
.modal-body { width: 100% }