我正在學習使用Java的XML和XSLT。我已經使用這些技術很久以前用ASP 3和Javascript創建了一些應用程序。現在我正在嘗試使用Xpath記住一些技巧,並瞭解如何在Java中進行此操作。如何做Xpath的結果成爲我的輸出結果?
我曾經在過去製作一個Xpath來從XML獲取一些元素並將其轉換爲我的HTML輸出。我一直試圖在java中做同樣的事情,但我認爲我有點失落。
我已經在這裏尋找其他人的帖子,但通常這些樣本只是獲取節點的值並顯示在一個循環中。我想獲得一段XML並將其轉換爲輸出HTML。
我有這個簡單的樣品波紋管,它工作正常。
Source source = new StreamSource("catalog.xml");
Source xsl = new StreamSource("catalog.xsl");
//Result result = new StreamResult(System.out);
Result result = new StreamResult("output.html");
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(xsl);
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.transform(source, result);
我正在使用javax.xml。 。我看到了幾個使用javax.xml.xpath的例子。。我也測試了一些Xpath的例子。
但到目前爲止,我還沒有意識到如何從XML獲取代碼片段代碼,並將其轉換爲我的output.html文件。
我的XML:
<catalog>
<cd active="1">
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd active="1">
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
<cd active="0">
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<country>USA</country>
<company>RCA</company>
<price>9.90</price>
<year>1982</year>
</cd>
</catalog>
例如,如果我想在我output.html改造只是這個XPath波紋管:
XPathExpression expr = xpath.compile("//catalog/cd[active='0']");
如何做到這一點在我的Java?
- 我知道我可以在我的XSL中用一個簡單的Xpath來做到這一點,但這只是一個例子。
如果我不清楚,請告訴我。
只是爲了讓舒爾知道你是正確的。您正在嘗試通過在Java中選擇XPath部分來將Source.xml文件的一部分轉換爲目標,而不更改源xml或xsl? – treeno
您的xpath在屬性:// catalog/cd [@ active ='0']上缺少「@」 –
@treeno是的。這是主意。 – Ventura