使用documentBuilder解析xml文档java

时间:2013-12-22 17:41:50

标签: java xml xmldocument

我的xml文件中有以下内容,基本上我正在尝试更改xml文档的属性

    <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <root level="DEBUG">
  </root>
</configuration>

这是我的java文件

    public static void changeXMLLogLevel(String pathToXMLDocument, String newWarnLevel){
    // make sure that xml file is present
    File f = new File(pathToXMLDocument);

    if (f.exists()) {
        try {
            DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
            Document doc = docBuilder.parse(pathToXMLDocument);


            // Get the warn level
            Node warnLevel = doc.getElementsByTagName("root").item(0);

            System.out.println("The warn level is: " + warnLevel);

           // more code..................

出于某种原因,虽然我的xml文档中有一个名为root的标记,但警告级别为空。

这是我输出的结果 The warn level is: [root: null]

1 个答案:

答案 0 :(得分:2)

我认为你误解了你的输出。有了这个

Node warnLevel = doc.getElementsByTagName("root").item(0);

您在xml中获得了单个root标记。该对象的toString()是标记的名称和节点的值,但显然是it always returns null for element nodes

您想要的是获取属性level

Node warnLevel = doc.getElementsByTagName("root").item(0).getAttributes().getNamedItem("level");
System.out.println("The warn level is: " + warnLevel);

打印

level="DEBUG"