如何用Java读取XML文件?

我不需要阅读复杂的XML文件。 我只想用最简单的XML阅读器阅读以下配置文件

 localhost 3306 root root cash  

如何通过Java使用XML阅读器阅读上述XML文件?

http://sofzh.miximages.com/java/2eamoeg.jpg

既然你想解析配置文件,我认为commons-configuration将是最好的解决方案。

Commons Configuration提供了一个通用配置接口,使Java应用程序能够从各种源(包括XML)读取配置数据

我喜欢jdom:

 SAXBuilder parser = new SAXBuilder(); Document docConfig = parser.build("config.xml"); Element elConfig = docConfig.getRootElement(); String host = elConfig.getChildText("host"); 

您可以使用简单的DOM解析器来读取xml表示。

 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); dom = db.parse("config.xml"); 

如果您只需要一个Java SDK附带的简单解决方案(自5.0起),请查看XPath包。 我相信其他人表现更好,但这就是我所需要的。 这是一个例子:

 import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import org.xml.sax.InputSource; ... try { XPath xpath = XPathFactory.newInstance().newXPath(); InputSource inputSource = new InputSource("strings.xml"); // result will equal "Save My Changes" (see XML below) String result = xpath.evaluate("//string", inputSource); } catch(XPathExpressionException e) { // do something } 

strings.xml中

   Save My Changes  

Java有几种XML解析器。 我使用过的,特别是开发人员友好的是JDOM 。 通过开发人员友好,我的意思是“面向Java”(即,您使用程序中的对象),而不是“面向文档”,就像其他一些工具一样。

我建议使用Commons Digester ,它允许您解析文件而无需编写大量代码。 它使用一系列规则来确定遇到给定元素或属性时应执行的操作(典型规则可能是创建特定业务对象)。

对于我的应用程序中的类似用例,我使用了JaxB。 使用Jaxb,读取XML文件就像与Java POJO交互一样。 但要使用JAXB,您需要为此xml文件提供xsd。 您可以在此处查找更多信息

如果您希望能够直接读取和写入XML对象,则可以使用XStream

虽然我还没有尝试过XPath,因为它现在刚刚引起我的注意,我已经尝试了一些解决方案并且没有发现任何适用于这种情况的东西。

只要你在自述文件中提到的假设下工作,我决定创建一个满足这种需求的库。 它的优点是它使用SAX解析整个文件并以地图的forms将其返回给用户,因此您可以将值查找为键 – >值。

https://github.com/daaso-consultancy/ConciseXMLParser

如果缺少某些东西,请告诉我缺失的项目,因为我只根据他人和我自己的需求来开发它。