您好我通常使用C++进行编程,所以XML/XSL/XPATH不是我的强项,但我需要做一个转换,我似乎无法找到一个好的这样做的方式。使用xsl匹配xml元素的数据部分内部的表达式
我们有一个此格式的XML文件:
<outer>
<element/>
<other_element/>
<message pri="info">
[[!CDATA Error: something is not working]]
</message>
<message pri="info">
[[!CDATA Warning: warnings are boring]]
</message>
</outer>
我需要一个XSL,可以改变这个完全相同的xml文件,不同之处,在于它的匹配“错误:”部分,并将pri属性更改为“error”。
我需要使用xsl转换器来做到这一点,我已经开始研究XPATH,但是我很难找到如何完成这个任务。
我得到尽可能的消息与
<xsl:template match="message">
<xsl:choice>
<xsl:when test="tricky part">
</xsl:when>
<xsl:otherwise>
<xsl:justcopythetag>
</xsl:otherwise>
</xsl:choice>
</xsl:template>
匹配我已经找到了如何复制其他信息的标签,但我对如何匹配“错误”的部分没有任何线索。
任何人都可以帮助我吗?
那么text()会引用匹配的节点吗?我懂了。谢谢 – daramarak
'text()'具体指的是节点的字符串内容。在大多数情况下,这并不是必要的,但我个人发现在'。'上面使用'text()'一眼就可以更清楚,更容易理解。 – Welbog
我同意,text()更清晰。 – daramarak