从 for-each 中的值更改 XPath 查询
我正在尝试为每个页面上的每个内容执行一个操作:
<xsl:for-each select="/root/page">
<xsl:value-of select="/root/titles/@page/"/>
</xsl:for-each>
示例 XML;
<root>
<titles>
<en>A title</en>
<de>Ein Titel</de>
</titles>
<page title="de">
....
</page>
</root>
我遇到的问题是 XPath 未解析为 /root/titles/de/...
我怎样才能让它发挥作用?
I'm trying to do a for each on each page:
<xsl:for-each select="/root/page">
<xsl:value-of select="/root/titles/@page/"/>
</xsl:for-each>
Sample XML;
<root>
<titles>
<en>A title</en>
<de>Ein Titel</de>
</titles>
<page title="de">
....
</page>
</root>
The problem I am having is that the XPath isn't resolving to the /root/titles/de/...
How can I get it to work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
已更新
现在它对我有用!
updated
now it works for me!
使用
xsl:key
。因为不清楚您需要的输出,所以我仅提供了一个示例,展示如何根据每个page
从titles
获取title
到页面语言。XSLT 1.0 在 Saxon 6.5.5 下测试
应用于此输入
会产生:
在 Mozilla Firefox 3.6.17 上测试如下:
产生
显然没有换行,因为我们将其显示在浏览器和转换应该更改为生成 HTML。
Use
xsl:key
. Because is not clear the output you need I've provided just an example for you showing how to get thetitle
fromtitles
for eachpage
according to the page language.XSLT 1.0 tested under Saxon 6.5.5
Applied on this input
produces:
Tested on Mozilla Firefox 3.6.17 as follows:
Produces
Obviously without new lines, because we are displaying it in a browser and the transform should be changed to produce HTML.
目前还不清楚您想要什么,但看起来您应该知道
xsl:for-each
将上下文更改为所选节点,就像模板一样。所以这可能会让你有所收获:希望这会有所帮助。
It's not really clear what you want, but it looks like you should be aware that
xsl:for-each
changes the context to the selected node, just like a template does. So this might get you somewhere:Hope this helps.