当前位置: 技术问答>java相关
有关用java处理XML文档的问题,请高手帮忙。
来源: 互联网 发布时间:2015-05-30
本文导语: 初学者,请多多指教。 我用的是IBM的VisualAge for Java 3.02(JDK1.1.7A,JFC1.0.3). 我先用DOM解析器把XML文档读入内存,解析如下: DOMParser aXMLParser = new DOMParser(); aXMLParser.parse("***.xml"); Document...
初学者,请多多指教。
我用的是IBM的VisualAge for Java 3.02(JDK1.1.7A,JFC1.0.3).
我先用DOM解析器把XML文档读入内存,解析如下:
DOMParser aXMLParser = new DOMParser();
aXMLParser.parse("***.xml");
Document dom = aXMLParser.getDocument();
dom.normalize();
然后添加节点,直到这一句:
dom.getDocumentElement().appendChild(****);
而后,所有的操作都只存在与内存之中,对实际的XML文档并没有改变,我就是不知道接下来用什么方法把新的DOM树写回去。
网上查过一些资料,用下面XSLT的方法没有用
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(dom);
StreamResult result = new StreamResult(new java.io.File("***.xml"));
transformer.transform(source, result);
不是因为这个方法不行,而是因为我所用的IBM的环境中好像没有Transformer类型,不知道在IBM的环境中该怎样写回,我听说可以一个一个节点的写入,虽然很麻烦,到是可用,我也不知道该怎样具体实现。望高手不吝赐教。多谢!!!!!!!!!
我用的是IBM的VisualAge for Java 3.02(JDK1.1.7A,JFC1.0.3).
我先用DOM解析器把XML文档读入内存,解析如下:
DOMParser aXMLParser = new DOMParser();
aXMLParser.parse("***.xml");
Document dom = aXMLParser.getDocument();
dom.normalize();
然后添加节点,直到这一句:
dom.getDocumentElement().appendChild(****);
而后,所有的操作都只存在与内存之中,对实际的XML文档并没有改变,我就是不知道接下来用什么方法把新的DOM树写回去。
网上查过一些资料,用下面XSLT的方法没有用
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(dom);
StreamResult result = new StreamResult(new java.io.File("***.xml"));
transformer.transform(source, result);
不是因为这个方法不行,而是因为我所用的IBM的环境中好像没有Transformer类型,不知道在IBM的环境中该怎样写回,我听说可以一个一个节点的写入,虽然很麻烦,到是可用,我也不知道该怎样具体实现。望高手不吝赐教。多谢!!!!!!!!!
|
你可以自己添加这个PACKAGE到你的环境呀!这个PACKAGE在www.apache.org有下载的!
|
另外,你的程序中要加上:
Properties properties = XXX.getOutputProperties();
properties.setProperty(OutputKeys.ENCODING,"GB2312");
才能处理中文
Properties properties = XXX.getOutputProperties();
properties.setProperty(OutputKeys.ENCODING,"GB2312");
才能处理中文
|
XMLOutputter outp = new XMLOutputter(indent,newLines,"GBK");
outp.output(doc, new FileOutputStream("exampleB.xml"));
outp.output(doc, new FileOutputStream("exampleB.xml"));
|
请参阅http://www.csdn.net/Expert/TopicView1.asp?id=722635
需要用Xalan(部分类JAXP已有)xml.apache.org
需要用Xalan(部分类JAXP已有)xml.apache.org