- 論壇徽章:
- 0
|
如何利用jaxp輸出xml片段?
這個問題之所以會出現,是和我前期做的一個程序有關.
我用xslt將一個xml文件轉換成html之后,需要截取其中的一部分,除了內容還包括html tag.
起先我用dom去解析html,發(fā)現java1.4和java1.5在對待node上有區(qū)別.
java1.4可以將一個node直接toString,里面包含了文本和tag;
java1.5也可以將一個node直接toString,不過里面只有null.
從網上了解,node.toString()這個方法本來就是調試用的,Sun公司允許每個版本的實現有所不同.
為了解決這個問題,我又查了一些資料,然后發(fā)現,真正可移植的方法應該是這樣的:
1.取得Dom Tree上的一個Node
2.將這個Node轉換成DOMSource
3.建立一個Transformer的實例,不過建的時候要有所講究
Transformer t=TransformerFactory.newInstance().newTransformer();
即這里newTransformer不能帶參數.
不帶參數的意思就是說,轉換過程中不做任何改變,原樣輸出
4.有了DOMSource和transformer,就可以將Node輸出到一個字符串中去了,而且是完整的保留了Node里所有的信息.
代碼如下:
Transformer transformer;
DOMSource d=new DOMSource(nl.item(i));
try
{
transformer = TransformerFactory.newInstance().newTransformer();
}
catch(TransformerConfigurationException ex)
{
ex.printStackTrace();
return;
}
StreamResult sr=new StreamResult(new StringWriter());
try
{
transformer.transform(d,sr);
}
catch(TransformerException ex)
{
ex.printStackTrace();
return;
}
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/4353/showart_1206276.html |
|