我的java服务应该接收包含多个元素的xml文件。我需要分析这个文件提取匹配的元素并将它们发送到相关的服务。
我希望找到一种轻松的方法,因为它是一个沉重的XML文件。
任何人都知道可以帮助执行该操作的java框架或解决方案吗?
由于
答案 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可以做几件事:
谷歌为他们:你会找到文档和教程。 api doc也很有帮助。你会在包名中找到所有这些工具。
答案 2 :(得分:0)
定义自定义规则以读取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进行测试, example和http://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