【发布时间】:2014-06-20 21:27:07
【问题描述】:
我有一个带有一长串标签的 XML 代码,我想在每个元素“文本”中用它们各自的“表单”属性值替换其中的单词和标签。
例如,以下是我的 XML 文件中的两句话:
<messages>
<text>
<spelling form="Hello">Helo</spelling> I'll see you next <abrev form="week">wk</abrev> alright.
</text>
<text>
<abrev form="Come on">cmon</abrev> get ready <spelling form="dude">dood</spelling>!
</text>
</messages>
这是我正在寻找的输出:
Hello I'll see you next week alright.
Come on get ready dude!
有人知道怎么做吗?
这是我目前在 XSL 文件中的内容:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:for-each select="messages/text">
<xsl:call-template name="parse">
<!-- this selects all the tags inside "text" (I think...) -->
<xsl:with-param name="a" select="./*"/>
</xsl:call-template>
</xsl:for-each>
</xsl:template>
然后,我的函数“解析”:
<xsl:template name="parse">
<!-- "a" is the text to parse -->
<xsl:param name="a"/>
<!-- return the value of "form" -->
<xsl:value-of select="$a/@form"/>
</xsl:template>
现在,我的“解析”函数还没有完成。我不知道如何用“form”值替换拼写错误的单词。
感谢您的帮助!
【问题讨论】:
-
你有
<spelling>和<abrev>还是只有一个?它们在您的源中没有正确关闭。
标签: xml xslt treeview xslt-1.0