假设XML文件具有未知结构(即未知元素和属性名称),例如
<RootElement>
<Level 1 ...>
<Level 2 ...>
...
</Level 2>
<Level 2 ...>
...
</Level 2>
</Level 1>
<Level 1 ...>
<Level 2 ...>
...
</Level 2>
<Level 2 ...>
...
</Level 2>
</Level 1>
</RootElement>
有没有办法使用StAX获取每个元素的完整原始文本?
至少,如何在第一级完成,即在上面的例子中(忽略漂亮的打印)我们如何在Java String变量中读取以下2个字符串:
"<Level 1 ...><Level 2...>...</Level 2></Level 1>"
和
"<Level 1 ...><Level 2...>...</Level 2></Level 1>"
答案 0 :(得分:2)
一起使用XMLStreamReader和XMLStreamWriter来获取(生成)您想要的任何原始XML。看起来你可以为一个更简单的解决方案做一些技巧,但你不能 - 需要解析XML,否则你处于深水中,如果你想破解解析器,通常会实现它们内部缓冲使得正确切断传入流有点毛茸茸的工作。
编辑:使用this question中的解析模式来跟踪关卡。要编写,以自己的方式处理输入中的每个事件类型 - 请注意,您可以对开始元素事件的所有属性和命名空间进行迭代。
答案 1 :(得分:0)
不, XMLStreamReader 允许您使用 getElementText() <获取仅文本 xml节点的文本内容 / strong>,要获得完整的内容,您必须自己阅读文件并获取元素并重新构建XML。
但也许你想要做的就是别的。你为什么不解释为什么需要这个?