Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中以文本形式动态读取原始XML元素_Java_Xml_Stax - Fatal编程技术网

在Java中以文本形式动态读取原始XML元素

在Java中以文本形式动态读取原始XML元素,java,xml,stax,Java,Xml,Stax,假设XML文件具有未知的结构(即未知的元素和属性名称),如 ... ... ... ... 是否有任何方法可以使用StAX获取每个元素的完整原始文本 至少,在第一个级别,即在上面的示例中(忽略漂亮的打印),我们如何读取Java字符串变量中的以下2个字符串: "<Level 1 ...><Level 2...>...</Level 2></Level 1>" “…” 及 “…” 否,XMLStreamReader允许您使用获取纯文本xml节点

假设XML文件具有未知的结构(即未知的元素和属性名称),如


...
...
...
...
是否有任何方法可以使用StAX获取每个元素的完整原始文本

至少,在第一个级别,即在上面的示例中(忽略漂亮的打印),我们如何读取Java字符串变量中的以下2个字符串:

"<Level 1 ...><Level 2...>...</Level 2></Level 1>"
“…”

“…”

否,XMLStreamReader允许您使用获取纯文本xml节点的文本内容,要获取完整内容,您必须自己读取文件,获取元素并重建xml


但也许你想做的是别的事情。为什么不解释一下为什么需要它呢?

将XMLStreamReader和XMLStreamWriter一起使用,以获得(生产)您想要的任何原始XML。看起来你可以为一个更简单的解决方案做一些技巧,但是你做不到——XML需要解析,否则你就陷入了困境,如果你想破解一个解析器,它们通常是通过内部缓冲来实现的,这使得正确地切割传入流有点麻烦


编辑:使用中的解析模式跟踪级别。要编写,请以自己的方式处理输入中的每个事件类型-注意,您可以迭代开始元素事件的所有属性和名称空间。

我猜这就是解决方案,但还没有成功地将这两种类型结合起来。任何代码示例都会有所帮助。谢谢该示例读取特定的标记(“无论什么1”),我需要原始XML文本(带有标记)。另外,XMLEventReader似乎更合适。似乎没有类似的示例代码!这个例子可以修改。在开始和结束元素事件的示例中,增加和减少级别,同时也添加对其他类型事件的支持。由于XmlStreamReader api,您似乎已经读过然后写过了,但是它可以实现一个readRaw()方法,该方法读取整个文本,包括元素的子元素。不幸的是,它并不存在。
"<Level 1 ...><Level 2...>...</Level 2></Level 1>"
"<Level 1 ...><Level 2...>...</Level 2></Level 1>"