问题如下:
XML文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<a>
  <b>
    <c>
      <d>
        <e></e>
        <f>f</f>
        <g>fffff</g>
        <h>f</h>
        <k>
          <i>ddd</i>
        </k>
      </d>
    </c>
  </b>
</a>
在JAVA里解析,代码如下:
SAXBuilder sb = new SAXBuilder(); 
        org.jdom.Document doc = sb.build(new java.io.FileReader("d:\\test.xml")); 
     String strPath = "a//b//c//d//g"; 
     org.jdom.xpath.XPath xpath = org.jdom.xpath.XPath.newInstance(strPath);
     org.jdom.output.XMLOutputter xo = new org.jdom.output.XMLOutputter();
      List lst = xpath.selectNodes(doc);        
     for (Iterator it = lst.iterator(); it.hasNext();) {            
            Element at = (Element) it.next();  
            if(at.getName().equals("g"))
             at.setText("6000");
            
        }
        xo.output(doc,System.out);代码执行后结果如下:
<?xml version="1.0" encoding="UTF-8"?>
<a>
  <b>
    <c>
      <d>
        <e />        <f>f</f>
        <g>6000</g>
        <h>f</h>
        <k>
          <i>ddd</i>
        </k>
      </d>
    </c>
  </b>
</a>
问题就出现在:
<e />
这样<e></e>节点被解析出错
,当修改<g>6000</g>写回到XML文件时,整个节点值为空的节点被破坏调?
这是什么回事?