0

嗨,我通常用 c++ 编程,所以 XML/XSL/XPATH 不是我的强项,但我需要进行转换,但我似乎找不到一个好的方法。

我们有一个格式如下的 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>

我需要一个可以将其转换为完全相同的 xml 文件的 xsl,但它与“错误:”部分匹配,并将 pri 属性更改为“错误”。

我需要使用 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>

我已经找到了如何复制其他消息标签,但我不知道如何匹配“错误”部分。

谁能帮我?

4

2 回答 2

2

您只是在寻找字符串“错误:”对吗?

<xsl:when test="contains(text(),'Error:')">
</xsl:when>

如果第contains()一个参数包含第二个参数,则返回 true。

于 2010-02-15T17:48:25.383 回答
2
...
<xsl:when test="contains(., 'Error')">
    <message pri="error"><xsl:value-of select="."/></message>
</xsl:when>
...otherwise
于 2010-02-15T17:50:25.200 回答