java - 如何从xml文件中获取属性?

标签 java xml dom

我的 Xml 文件如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pointList SYSTEM "point.dtd">
<pointList>
<point unit="mm">
<x>2</x>
<y>3</y>
</point>

<point unit="cm">
<x>9</x>
<y>3</y>
</point>

<point unit="px">
<x>4</x>
<y>7</y>
</point>

</pointList>

当我尝试获取标记点的属性时:

import java.io.File;
import java.io.IOException;


import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;


public class TryXml {
    public static void main (String [] args) {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = null;
        Document doc = null;
        try {
            builder = factory.newDocumentBuilder();
        }
        catch (ParserConfigurationException e){
            System.out.println(e.getMessage());
        }
        File f = new File("p1.xml");
        try {
            doc=builder.parse(f);
        }
        catch (SAXException e){
            e.printStackTrace();
        }
        catch (IOException e){
            e.printStackTrace();
        }

        Element root = doc.getDocumentElement();
        System.out.println(root.getTagName());

        System.out.println("****************");


        NodeList nList = root.getChildNodes();
        for (int i=0;i<nList.getLength();i++) {
        if(nList.item(i) instanceof Element)

        System.out.println(nList.item(i).getAttributes());
    }

    }
    }

我得到的只是类似地址的内容:

com.sun.org.apache.xerces.internal.dom.AttributeMap@3214512e
com.sun.org.apache.xerces.internal.dom.AttributeMap@53ddbcb1
com.sun.org.apache.xerces.internal.dom.AttributeMap@28f337b

任何人都可以给我一个关于如何获取 point 的属性以及其他内部标签的提示吗?

最佳答案

您可以将 println 替换为以下内容:

System.out.println(((Element) nList.item(i)).getAttribute("unit"));

这应该为您提供当前元素的“unit”属性。

关于java - 如何从xml文件中获取属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10431450/

相关文章:

java - 用于模板匹配的 OpenCV 读取图像

c# xml element() 选择未定义的元素

android - 如何在设置 View 的 alpha 之前创建 1 秒的延迟?

javascript - 授予 jQuery 插件访问选定 DOM 对象的权限

javascript - 来自 EventListener 的 ReactJS 事件不会更新 View

c# - C#和Java是鸭子类型(duck typing)的吗?

java - Java中如何获取用户输入?

Java 密码套件

xml - 如何使用 asp 设置 http 超时?

javascript - 带有 CSS 动画的动态 src 路径