如何分析XML文件?

时间:2011-10-25 16:23:49

标签: java xml

我的java服务应该接收包含多个元素的xml文件。我需要分析这个文件提取匹配的元素并将它们发送到相关的服务。

我希望找到一种轻松的方法,因为它是一个沉重的XML文件。

任何人都知道可以帮助执行该操作的java框架或解决方案吗?

由于

7 个答案:

答案 0 :(得分:1)

XPath可能是一个很好的解决方案。这是API文档的链接,但您也可以找到许多不同的教程和入门指南。只需在Google上搜索“Java XPath教程”或类似内容。

http://download.oracle.com/javase/1,5.0/docs/api/javax/xml/xpath/package-summary.html

XPath可能还有其他几种可能更适合您的需求,因此值得关注其他开源实现。

答案 1 :(得分:1)

有许多方法可以用Java读取XML文件。使用Java SE可以做几件事:

  • SAX
  • DOM
  • StAX的
  • JAXB

谷歌为他们:你会找到文档和教程。 api doc也很有帮助。你会在包名中找到所有这些工具。

答案 2 :(得分:0)

Apache Commons Digester

定义自定义规则以读取xml文件,并调用方法或创建对象以进行解组。

/students/student -> new Student();
/students/student/name -> invoke setName(name) for student
/students/student -> invoke addStudent(student) for each student

一切都是可选的,您可以定义需求

使用http://commons.apache.org/digester进行测试, examplehttp://www.javaworld.com/javaworld/jw-10-2002/jw-1025-opensourceprofile.html?page=2中的example

答案 3 :(得分:0)

将其传递给XSLT样式表。 Java XSLT实现非常好,使输入树保持最小,并且经常使用(至少默认情况下)字节码编译而不是解释来使转换真正快速。匹配输入并生成所需的输出正是XSLT适用的,具有声明式风格。

答案 4 :(得分:0)

您可以尝试获取XML文件的DOM树,然后使用this递归方法遍历树以查找所需内容。

答案 5 :(得分:0)

使用JDOM,它小巧,快速且易于使用。

答案 6 :(得分:0)

尝试VTD-XML,它比JDOM(高达10倍),DOM4J或DOM快得多,而且内存效率也高得多。有关详细信息,请参阅VTD-XML Wikipedia Entry