我想做一些类似于浏览器加载网页时所做的事情。 我希望客户端能够请求 XML 页面。然后,客户端接收 XML 页面,保存它,然后读取文件以查看是否需要更多文件/资源...等等...直到该 XML 页面所需的所有资源都位于客户端计算机上。
客户端正在运行 Java。我想使用 XSLT 尽可能多地处理 XML。 Java 将处理文件打开、保存和 http 请求。
举个例子。客户端收到此 XML 文件
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="optimus.xsl"?>
<Bus name="happy fun">
<Picture image="red.gif"/>
</Bus>
所以我希望客户端处理该文件,意识到它需要从服务器请求文件 optimus.xsl 和 red.gif。 java 会做什么。
我可以使用 XSLT 获取 Picture/@image 属性。但我无法使用 XSLT 读取“xml-stylesheet”。有更好的办法吗?
最佳答案
可以使用<xsl:template match="processing-instruction('xml-stylesheet')">
来处理处理指令分别用 <xsl:variable name="pi" select="//processing-instruction('xml-stylesheet')"/>
选择它。然后,您需要通过字符串处理来解析内容,或者检查您的 XSLT 处理器是否支持像 Saxon 9 那样的扩展( http://saxonica.com/documentation/html/functions/saxon/get-pseudo-attribute.html ),您可以在其中执行以下操作: <xsl:template match="processing-instruction('xml-stylesheet')"><xsl:value-of select="saxon:get-pseudo-attribute('href')"/>...</xsl:template>
.
关于java - 使用 XSLT 如何以引导加载方式从 XML 获取资源链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26586092/