JavaでXMLとXSLTを勉強しています。これらの手法を使用して、ASP 3 と Javascript を使用して、かなり前にいくつかのアプリを作成しました。今、私は Xpath でいくつかのテクニックを覚えて、Java でこれを作成する方法を理解しようとしています。
以前は 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でこれを行う方法は?
- 単純な Xpath を使用して XSL でこれを実行できることはわかっていますが、これは単なる例です。
よくわからない場合は、お知らせください。