Java 解析字符串以提取XML

Java 解析字符串以提取XML,java,xml,parsing,Java,Xml,Parsing,假设我有以下字符串: abc: def qxy <?xml version='1.0'><xyz> ... </xyz> other text <?xml version='1.0'><www> ... </www> more text abc:def qxy ... 其他文本 ... 更多文本 有没有办法解析这个?我目前正在尝试使用XMLStreamReader,它抛出了一个解析错误:javax.xml.stream.

假设我有以下字符串:

abc: def
qxy
<?xml version='1.0'><xyz>
...
</xyz>
other text
<?xml version='1.0'><www>
...
</www>
more text
abc:def
qxy
...
其他文本
...
更多文本

有没有办法解析这个?我目前正在尝试使用XMLStreamReader,它抛出了一个解析错误:
javax.xml.stream.XMLStreamException:ParseError
。如果我删除了所有的测试,并尝试解析其中一个XML部分(如仅xyz),那么它就可以完美地工作。

您必须过滤掉XML部分。没有通用的XMLStreamReader会为您这样做,因为他们不知道您的文档从哪里开始或结束。您可以设计自己的专用版本来过滤输入,但其他实现只需要完整的xml文档。

您必须过滤掉xml部分。没有通用的XMLStreamReader会为您这样做,因为他们不知道您的文档从哪里开始或结束。您可以设计自己的专用版本来过滤输入,但其他实现只需要完整的xml文档。

哦,那么xml解析器可以在文档中查找文本,但无法在文档外查找文本?我怀疑是这样的,但是除了XMLStreamReader之外,没有其他XML解析器可以为我做到这一点吗?XML文档必须格式良好,才能由XML解析器正确解析。这意味着只有一个根元素,根元素和标记之外没有内容需要平衡。您应该先提取XML文档,然后才能解析它们。哦,这样XML解析器就可以在文档中找到文本,但却无法在文档之外找到文本?我怀疑是这样的,但是除了XMLStreamReader之外,没有其他XML解析器可以为我做到这一点吗?XML文档必须格式良好,才能由XML解析器正确解析。这意味着只有一个根元素,根元素和标记之外没有内容需要平衡。您应该首先提取XML文档,然后才能解析它们。