XSLT样式表跨目录通过相对URI引用获取作者信息的技术问询
跨目录获取XML文件内容的解决方案
没问题,这完全可行!你只需要调整document()函数中的路径,让它能正确定位到跨目录的目标XML文件即可,具体分两种情况处理:
情况1:直接指定跨目录路径
如果不想修改1836_562_txt.xml里的note元素,可以直接在XSLT代码中使用相对路径指向目标文件:
<xsl:for-each select="document('../1836_561/1836_561_intro.xml')//author"> <!-- 这里处理作者名逻辑 --> </xsl:for-each>
这里的../表示当前目录(1836_562)的上级目录,之后再定位到1836_561目录下的1836_561_intro.xml文件。
情况2:通过修改note元素的target属性实现
如果想沿用之前通过note元素的target属性动态获取路径的方式,只需要修改1836_562_txt.xml里的note元素,把target值改成跨目录的相对路径:
<note target="../1836_561/1836_561_intro.xml" type="intro"/>
之后就可以继续使用你原来的代码逻辑:
<xsl:for-each select="document(//note[@type='intro']/@target)//author"> <!-- 这里处理作者名逻辑 --> </xsl:for-each>
关键说明
XSLT的document()函数支持相对路径解析,路径是相对于当前正在处理的XML文件(即1836_562_txt.xml)的位置来计算的。只要目标文件的路径正确、文件实际存在,并且你的XSLT处理器没有限制跨目录文件访问(大部分默认环境下都允许),就能顺利获取到1836_561_intro.xml中的作者名。
内容的提问来源于stack exchange,提问作者KSR
相关产品推荐
相关产品推荐

