2013-04-30 48 views
1

即时尝试解析XML文件,但它不会打印属性值。我不知道如何从手机Java Dom getAttribute

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>[email protected]</Email> 
    <phone typ="mobil">09443916565</phone> 
    <sal>500</sal> 
    </Author> 
    <Author> 
    <Id>2</Id> 
    <Name>second</Name> 
    <Email>[email protected]</Email> 
    <phone typ="pevna">094415665465</phone> 
    <sal>1000</sal> 
    </Author> 

还有一件事属性类型:NIS有可能只是打印XML文件(的System.out.println)树表示?

谢谢

回答

2

您目前正在寻求的<Author>元素的typ属性(两次,出于某种原因)。您应该获取<phone>元素(您已经在做),然后要求属性为元素,而不是<Author>元素。

+0

所以我需要一个更多的循环与电话nodelist? – ivanz 2013-04-30 19:24:33

+0

@sevdah:不,不一定 - 这取决于您是否期待多个“phone”元素。 (您目前的代码只提取一个,所以你可以在这里做同样的事情......) – 2013-04-30 19:25:38

+0

每个作者的一个手机元素。我不知道如何调用该元素的getattribute方法.... – ivanz 2013-04-30 19:32:05