我正在用 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 中做到这一点,但这只是一个示例。
如果我不清楚,请告诉我。