java - 在 java 中访问 xml 元素中的属性

标签 java xml

我们有一个以 XML 文档形式返回搜索结果的目录。

<directory.person>
   <person netid="" pidm="" student="" affiliate="">
      <picture>no</picture>
      <name>...</name>
   </person>

我正在尝试使用以下代码在 java 中解析和读取它:

    try{  
        DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();                                         
        InputSource is = new InputSource();
        is.setCharacterStream(new StringReader(xml));
        Document doc = db.parse(is);
        NodeList nodes = doc.getElementsByTagName("person");

        for(int i = 0;i < nodes.getLength(); i++){  
            Element element = (Element) nodes.item(i);
            NodeList pidm = element.getElementsByTagName("@pidm");
            Element line = (Element)pidm.item(0);
            value = getCharacterDataFromElement(line);
            if(value.compareTo("Dana")==0 || value=="Dana")
                out.println(value);
        }
    }
    catch(Exception e){
        out.println(e);
    }

我遇到的问题是在我的“for”循环的第二行中实际访问该 pidm 变量。我不知道该怎么做。基本上,我需要通过 pidm 输出,因为这是返回的每个人的唯一标识符。我知道 jSTL 会更容易,但这里的人不想那样做。

最佳答案

org.w3c.dom.Element 类有许多访问元素属性的方法。

此处最简单的情况是调用 element.getAttribute("pidm");

它将为您提供给定属性的

否则,为了您的方便,您可以浏览 Element 的其他 getAttribute... 方法。

API here .

关于java - 在 java 中访问 xml 元素中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24390839/

相关文章:

java - jquery.js 没有在 Tomcat 中加载

java - hibernate/jpa Autowire 注释产生 Nullpointer 异常错误

java - MediaPlayer.create() 总是返回 null

java - Servlet 接收基于 XML 的请求,然后创建一个新的 XML 文件作为响应发回

java - 如何使用Java从mysql获取最后2分钟的数据

java - 比较两个对象时 JUnit assertEquals() 不起作用

java - 如何从 xml 读取多个子项

java - JAXB:将元素类型 xs:string 绑定(bind)到 Enum

php - PHP 网站的最佳 XML DB?

xml - 限制 for-each 循环 XSL 中排序结果的数量