java - 在 Java 中解析伪 XML 文件

标签 java xml parsing

我正在尝试从伪 XML 格式的文件中解析文本。当它具有以下结构时,我可以从中获取 DOM 文档:

<product>
    <product_id>234567</product_id>
    <description>abc</description>
</product>

当结构类似于以下内容时,我遇到的问题就发生了:

<product>
    <product_id>234567</product_id>
    <description>abc</description>
    <quantity 1:2>
        <version>1.1</version>
    </quantity 1:2>
        <version>1.2</version>
    <quantity 2:2>
    </quantity 2:2>
</product>

由于 <quantity 1:2> 中的空格,它会生成以下异常:

org.xml.sax.SAXParseException:[Fatal Error] :1:167: Element type " quantity " must be followed by either attribute specifications, ">" or "/>"

我可以通过用下划线替换空格来解决这个问题。问题是结构的大小可能不同,并且包含多个具有相同格式 (<node 1:x>) 的子节点,并且文件可能包含数百个要解析的结构。是否有一个类可以解析这样的文本并返回一个树状对象?

最佳答案

您的文件根本不是 XML,SAX 是用于 XML(XML 的简单 API)。您应该重新考虑您的结构,以便您可以执行以下操作:

<quantity myAttr="1.2">
    <version>1.2</version>
</quantity>
<quantity myAttr="1.x">
    <version>1.1</version>
</quantity>
<version>1.0</version>

或者类似的东西。

关于java - 在 Java 中解析伪 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5772123/

相关文章:

java - 如何使用用户输入查找数组中的范围?

java - 如何在listView适配器内的onclicklistener中获取textView文本

parsing - 使包含标记的表对 .mly 和 .mll 均可见(作者:menhir)

java - 传递数组 - 线程中出现异常 "main"java.lang.ArrayIndexOutOfBoundsException : 5

java - 递归技术

android:textColor 实际上没有工作

xml - 如何在 Perl 中使用 XSD 验证 XML?

ruby - Ruby 中我的 XML 之前的无效字符

Eclipse MPI 解析器错误

parsing - 当标题不在第一行时,Univocity 解析器如何读取 .csv 文件?