java - 使用 STaX 解析多个 XML 片段

标签 java xml xml-parsing stax

我希望以下内容可以在 StAX 中解析,

<something a="b"/>
<something a="b"/>

但是当你到达第二个元素时它会窒息。因为没有共同的根元素。 (我不太确定为什么拉式解析器会关心这个特定问题……无论如何……)

我可以伪造一个根元素,例如 Guava :

    InputSupplier<Reader> join = CharStreams.join(
            newReaderSupplier("<root>"),
            newReaderSupplier(new File("...")),
            newReaderSupplier("</root>"));

    XMLInputFactory xif = XMLInputFactory.newInstance();
    XMLStreamReader xsr = xif.createXMLStreamReader(join.getInput());
    xsr.nextTag();  // Skip the fake root

所以我的问题只是:有什么办法可以避免这种黑客攻击吗?我可以将解析器放入某种“片段”模式?

最佳答案

没有。 StAX API 不支持片段。 XMLStreamReader 只适用于一个 XML 文档。但是,您的“hack”一点也不差……

关于java - 使用 STaX 解析多个 XML 片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9899099/

相关文章:

java - DateTimeFormatter 创建模式

java - Android 可折叠工具栏菜单图标消失

Java 创建一个新的 xml 文件并附加它

java - JButton 默认光标

Java中软引用和弱引用的区别

java - 释放Java 8中打开的连接

java - 无法使用 jdom 创建 xml 文件

xml - 合并具有相同属性的元素

java - Android XML规范化

iOS:在 xml 解析完成之前创建 TableView