XSLT换行问题
我正在尝试使用 xslt 根据 xml 文件中的字段生成 html 输出。我根据 xml 中的祖父母-父母-孩子-孙子关系命名它们
例如:
<root>
<node1>
<node2>
<node3>Data</node3>
</node2>
</node1>
我需要的是创建一个名为 node1__node2__node3
的文本框
到目前为止我所做的是这个
<input type="text" name="node1__
node2__
node3__"
,但我想要的是:
<input type="text" name="node1__node2__node3__"/>
所以它是没用的。我的 xslt 产生这个无用的输出是:
<xsl:template name="chooseNameID">
<xsl:param name="currentNode"/><!-- in this case currentNode is node3 -->
<xsl:variable name="fieldNames">
<xsl:for-each select="$currentNode/ancestor::*">
<xsl:value-of select="name(.)"/>__
</xsl:for-each>
</xsl:variable>
<xsl:attribute name="name">
<xsl:value-of select="$fieldNames"/>
</xsl:attribute>
</xsl:template>
我猜问题出在
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
此转换:
应用于提供的 XML 文档时:
产生所需的正确结果:
请注意:使用 AVT(属性值模板)在短短一行内生成所需的输出。
This transformation:
when applied on the provided XML document:
produces the wanted, correct result:
Do note: The use of AVT (Attribute Value Template) to generate the required output in one short line.
不需要的空格(包括换行符)是循环中文本节点文字的一部分。
在样式表文档中,除了
xsl:text
内之外,纯空白文本节点都会被忽略。然而,与其他文本相邻的空白是该文本的一部分。样式表中的文字空白可以使用
xsl:text
进行管理。The unwanted whitespace, including newlines, is part of a text node literal in the loop.
In the stylesheet document, whitespace-only text nodes are ignored except within
xsl:text
. However whitespace adjacent to other text is part of that text.Literal whitespace in the stylesheet can be managed with
xsl:text
.像往常一样,提出问题后你会找到解决方案。
使用此为我工作。
行更改As normal, after asking a question you find a solution.
Changing
<xsl:value-of select="$fieldNames"/>
line with this<xsl:value-of select="normalize-space($fieldNames)"
worked for me.