【问题标题】:parsing xml document java with documentBuilder使用 documentBuilder 解析 xml 文档 java
【发布时间】:2014-01-11 00:01:40
【问题描述】:

我的 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]

【问题讨论】:

    标签: java xml xmldocument


    【解决方案1】:

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

    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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-07
      • 2010-09-25
      • 2011-09-30
      • 2013-06-25
      • 2017-10-15
      • 2011-05-14
      • 1970-01-01
      • 2016-09-08
      相关资源
      最近更新 更多