java - 使用 XSLT 如何以引导加载方式从 XML 获取资源链接?

标签 java xml xslt

我想做一些类似于浏览器加载网页时所做的事情。 我希望客户端能够请求 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/

相关文章:

java - 检查对象是否为 String 类型

c# - 尝试使用 XPath 过滤 XML

java - 局部变量的排列错误

java多映射arraylist

java - MediaController 方法 adjustmentVolume 和 MediaSession

java - 使用解析后的 Java DOM XML 中的元素添加新元素

xml - 将代码从使用 XML::XPath 更改为 XML::LibXML

javascript - 我可以在 XSLT 转换中使用 javascript 吗?

c# - 在 msxsl 中使用程序集和命名空间的问题

c# - 在 XSLT 中生成 GUID