问题如下:
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文件时,整个节点值为空的节点被破坏调?
这是什么回事?
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文件时,整个节点值为空的节点被破坏调?
这是什么回事?
解决方案 »
- c3p0配置没有反应
- java多重继承
- Hibernate隔一段时间加载不了外表
- 在标题里输入特殊字符会导致以标题为链接的列表的链接代码错误
- NCV5 怎么学
- 外键影响性能?
- 拿不定主意,哥们们帮我想个办法啦!
- 关于工作流和报表的问题
- 第一个ejb,出错:javax.naming.NameNotFoundException ,Converter not bound?
- [ibatis]使用存储过程的参数如何用?
- log4j:WARN Please initialize the log4j system properly.怎么改
- 急,SSH框架,Myeclipse6.0运行是报错org.springframework.beans.factory.BeanDefinitionStoreException
这有问题吗?
<e></e> 与<e />难道不是等价的吗?
先了解XML的规范吧。