Java Dom 获取属性

标签 java xml dom xml-parsing

我正在尝试解析 xml 文件,但它不会打印属性值。我不知道如何从手机获取属性类型

 try {  String subor = "Noviny.xml";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(subor);
System.out.println("----------------\n");
NodeList nodelist = document.getElementsByTagName("Author");
NodeList nodelist1 = document.getElementsByTagName("Article");
for(int i = 0; i < nodelist.getLength(); i++) {
  Node uzol = nodelist.item(i);
  if (uzol.getNodeType() == Node.ELEMENT_NODE)
  {
      Element element = (Element) uzol;
      System.out.println("Id:" + element.getElementsByTagName("Id").item(0).getTextContent() + "\n"); 
      System.out.println("Name:" + element.getElementsByTagName("Name").item(0).getTextContent() + "\n");
      System.out.println("Email:" + element.getElementsByTagName("Email").item(0).getTextContent() + "\n");
      System.out.println("typ: " + element.getAttribute("typ") + "\n");
      System.out.println("phone:" + element.getElementsByTagName("phone").item(0).getTextContent() + "\n");
      System.out.println("typ: " + element.getAttribute("typ") + "\n");
      System.out.println("sal: " + element.getElementsByTagName("sal").item(0).getTextContent() + "\n"); 
    }


    catch (Exception e) {
  e.printStackTrace();
}

和 xml

<Noviny>
  <Author>
    <Id>1</Id>
    <Name>first</Name>
    <Email>first@gmail.com</Email>
    <phone typ="mobil">09443916565</phone>  
    <sal>500</sal>
  </Author>
  <Author>
    <Id>2</Id>
    <Name>second</Name>
    <Email>second@gmail.com</Email>
    <phone typ="pevna">094415665465</phone>  
    <sal>1000</sal>
  </Author>

还有一件事:是否可以只打印 (System.out.println) xml 文件的树表示形式?

谢谢

最佳答案

您当前正在请求typ <Author> 的属性元素(由于某种原因两次)。您应该获取 <phone>元素(您已经在这样做),然后请求 typ that 元素的属性,而不是 <Author>元素。

关于Java Dom 获取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16307311/

相关文章:

java - XML 签名验证

java - 什么 xml 解析器符合这些要求?

xml - 为什么节点和元素在 XML 中不同?理由是什么?

Java 未选中 : unchecked generic array creation for varargs parameter

Java PriorityQueue Comparator - 如何/何时排序?

java - Android - 通过带国家代码的号码联系

java - 尝试在 Struts2 中 Autowiring Spring Data MongoRepository

c# - 如何在 C# 中添加自定义标签将 JSON 转换为 XML

javascript - 如何字符串化 DOM 节点?

java - USB-RS232通讯