用dom4j获取根节点的属性值 xml节点信息如下:
 <?xml version="1.0" encoding="shift-jis"?>
<DocumentReceipt 
 xmlns="http://xxxx/DocumentReceipt"
 xmlns:xsi="http://xxxx/XMLSchema-instance"
 xsi:schemaLocation="http://xxxx/DocumentReceipt DocumentReceipt.xsd">
..........
</DocumentReceipt>现在我要获取这个根节点<DocumentReceipt>里面的 xmlns,xmlns:xsi,xsi:schemaLocation三个属性的值,然后写到几个变量中。代码如下:
 SAXReader reader = new SAXReader();
 Document document = reader.read(getXmlFile());// getxmlfile方法返回的是个File,确认没错
 Element documentReceiptElement = doc.getRootElement();
 Sting setXmlns = documentReceiptElement.attributeValue("xmlns");
 String setXmlns_xsi = documentReceiptElement.attributeValue("xmlns:xsi");
 String setXsi_schemaLocation = documentReceiptElement.attributeValue("xsi:schemaLocation"));     然而我测试的时候发现这几个变量得到的都是NULL,怎么回事?我确定得到的节点没错,而且用这个方法再获取下面其他子节点属性都没问题,难道根节点不能这么获取属性吗?请高手明示 谢谢!!

解决方案 »

  1.   

    Node node=doc.selectSingleNode("//DocumentReceipt@xmlns");
    strDriver=node.getText();试试上面的方法
    需要dom4j-1.6.1.jar,jaxen-1.1-beta-6.jar.还有可能是你的xml文件的格式不对,xml文件好象是一句不能分行的.
      

  2.   

    如何获取系统属性呢? 现在要求的是把这个XML文档里面的这些属性都读出来,如何读?
       还有一个问题,<ds:Signature Id="drSig" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    象这样一个标记,我用XXX.attributes().size() 查到这个节点的属性数量是1
       第2个属性 xmlns:ds 到哪去了??? 如何获取这个属性的值呢,大哥大姐们,实在是没招了
      

  3.   

    我们用java来解决实际问题。java技术交流,讨论java的技术细节和最新技术。欢迎中高级程序员以及渴望学习java技术的有一定经验的程序爱好者加入讨论。QQ群:3001581
      

  4.   

    //放入根节点属性
    Element eParent = new Element(sParent);     
    eParent.addAttribute("content","test");//读根节点属性
    try {
      jDoc = jSaxD.build(file);
    } catch (JDOMException e) {
      e.printStackTrace();

     Element eParent = jDoc.getRootElement(); //get the rootElement
     System.out.println("eparent.content::: " + eParent.getAttributeValue("content"));