我有一個xml文檔和一個樣式表,用於將文檔轉換爲另一個有用的xml。 對於引用的XML文檔是有點像這樣:用於XSL轉換的不尋常的輸出
<root>
<element1>value1</element1>
<element2>value2</element2>
<element3>value3</element3>
<element4>..some more levels of data</element4>
</root>
樣式表看起來有點像這樣:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="errorResponse.xsl"/>
<xsl:template match="root/element4">
<xsl:element name="myRoot">
<xsl:element name="myElement">
<xsl:apply-templates select="./someElement/someOtherElement"/>
</xsl:element>
</xsl:element>
</xsl:template>
這我得到的輸出XML字符串是這樣的:
<?xml version="1.0" encoding="ISO-8859-1"?>
value1
value2
value3
<myRoot><myelement> some data </myElemrnt></myroot>
我用於轉換的代碼片段是這樣的:
InputStream styleSheet = new FileUtil().getFileStream("xsltFileName");
StreamSource xslStream = new StreamSource(styleSheet);
DOMSource in = new DOMSource(inputXMLDoc);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
TransformerFactory transFact = TransformerFactory.newInstance();
transFact.setURIResolver(new XsltURIResolver());
Transformer trans = transFact.newTransformer(xslStream);
trans.transform(in, new StreamResult(baos));
System.out.println(baos.toString()); // displays the above output
但是輸出格式不合要求。我不想要value1,value2,value3。這也對新生成的XML進一步產生問題,需要處理。
我已經看到了很多關於轉換的問題。這很長時間以來一直困擾着我。如果有人能指出我出錯的地方,我會很感激。
另外指出,如果我在整個過程中遵循任何不正確的約定。
感謝和問候。
您對樣式表有什麼確切的輸出結果?如果沒有這些,就無法幫到你......使用任何其他XSLT處理器時也會發生錯誤嗎?一些瀏覽器可以爲你做,否則使用撒克遜 – amon 2012-08-06 19:58:11