我有这些XML文件:
include_paths.xml
<includes>
<include name="foo" path="path/to/foo">
<include name="bar" path="path/to/bar">
</includes>
main.xml中
<model>
<include file="foo">
<include file="bar">
</model>
XSLT样式表(sheet.xslt)
<xsl:param name="include_paths"/>
<xsl:template match="/">
<ul>
<xsl:apply-templates select="//include"/>
</ul>
</xsl:template>
<xsl:template match="include">
<li><a href="#{document($include_paths)/includes/include[@name = @file]/@name}"><xsl:value-of select="@file"/></a></li>
</xsl:template>
我用
运行转换 xsltproc --stringparam include_paths include_paths.xml sheet.xslt main.xml
这段代码应该做的是我首先给脚本一个参数,该参数包含include_paths.xml
的文件路径,它定义了一些包含路径。此参数全局声明,并在&#34; include&#34;中使用。模板。在遍历来自main.xml
的包含时,我想在<a>
标记中添加链接到名称在不同XML文件的include标记中匹配的路径。
因此,例如,我希望<li>
项以<include>
main.xml
项@file=foo
项path/to/foo
与include_paths.xml
的{{1}}路径<ul>
<li><a href="path/to/foo">foo</a></li>
<li><a href="path/to/bar">bar</a></li>
</ul>
一致来自@name
。这将产生以下预期结果:
@file
我认为我的问题是XPath表达式中的命名空间(作用域?),我无法区分document(...)
和$include_paths
标记。我的猜测是include_paths.xml
函数的范围是@file
变量,因此是SWT.NORMAL
SWT.ERROR
SWT.PAUSED
文件,但我的问题是我如何引用AntiForgeryToken
属性XPath表达式。
如何解决这个问题?
答案 0 :(得分:1)
在VTK
中使用current()
。