【问题标题】:XML parser in JavaJava中的XML解析器
【发布时间】:2015-03-30 09:40:00
【问题描述】:

我需要在java 中解析xml,有人可以帮我吗?我的xml

<books>
<book1>
<index1>title1</index1>
<index2>title2</index2>
<index3>
<data1>HI1</data1>
<index4>
<data2>HI2</data2>
</index4>
</index3>
<book1>
</books>

输出应该是

书籍书籍开始 书籍-书籍-index1:title1 书籍-书籍-index2:title2 书籍-书籍-索引3-开始 书籍-书籍-index3-data1:HI1 书籍-书籍-index3-index4-begin 书籍-书籍-index3-index4-HI2 书籍-书籍-索引3-索引4-结束 书籍书籍索引3端 书本端

我们不会为books 打印beginend,因为它是根标签。 任何帮助将不胜感激。 谢谢

【问题讨论】:

    标签: java xml


    【解决方案1】:

    由于它似乎是一项家庭作业或解析本身很重要的东西,我会使用带有您自己的处理程序的 SaxParser,例如MySAXHandler extends DefaultHandler,然后编写类似...

    InputStream input = ...; //Your input here.
    
    SAXParser      saxParser = factory.newSAXParser();
    MySAXHandler handler   = new MySAXHandler ();
    saxParser.parse(input, handler);
    

    我认为,您会发现处理程序具有完成任务的所有重要方法。

    如果只有数据很重要,我会使用 JAXB,如果你问我,它更容易使用。

    【讨论】:

    • 谢谢你,但我的 xml 不应该依赖于类,如果在 xml 中新添加新标签,我的类需要修改,这是我不想要的。
    • 那么 SAXParser 是你的方式,因为处理程序将被告知标签的开始结束,但不依赖于确切的结构。
    • 我能够解析 XML,但它的打印输出错误,它应该像这样打印:books-book-begin books-book-begin books-book-index1:title1 books-book-index2:title2书籍-书籍-index3-开始书籍-书籍-index3-data1:HI1书籍-书籍-index3-index4-开始书籍-书籍-index3-index4-HI2书籍-书籍-index3-index4-end书籍-书籍-index3-end books-book-end 但它的印刷 books-book-begin books-book-index1:title1->begin books-book-index2:title2->begin
    【解决方案2】:

    使用 Jaxb 将 XML 转换为对象。
    http://www.mkyong.com/java/jaxb-hello-world-example/

    谢谢, 帕万

    【讨论】:

    • 像,books-book-begin books-book-index1:title1 books-book-index2:title2 books-book-index3-begin books-book-index3-data1:HI1 books-book- index3-index4-begin books-book-index3-index4-HI2 books-book-index3-index4-end books-book-index3-end books-book-end
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 2012-03-23
    相关资源
    最近更新 更多