質問

XML / XSL / XPathは私の強い方ではありませんが、私は変換を行う必要があると私はそれを行うための良い方法を見つけるように見えることはできませんので、

こんにちは、私は通常のC ++でプログラミングしています。

私たちは、このようにフォーマットされた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 transformatonでこれを行う必要がある、と私はXPATHを見始めているが、私はこれを実現する方法を見つけるのに苦労しています。

私が得た限りでメッセージをマッチングなど

<xsl:template match="message">
  <xsl:choice>
    <xsl:when test="tricky part">
    </xsl:when>
    <xsl:otherwise>
      <xsl:justcopythetag>
    </xsl:otherwise>
  </xsl:choice>
</xsl:template>

私は他のメッセージタグをコピーする方法を見出したが、私は「エラー」の部分と一致する方法について見当もつかないます。

誰も私を助けることができますか?

役に立ちましたか?

解決

あなただけの文字列を探している「エラー:」?右

<xsl:when test="contains(text(),'Error:')">
</xsl:when>
最初のパラメータが第二が含まれている場合は、

contains()がtrueを返す。

他のヒント

...
<xsl:when test="contains(., 'Error')">
    <message pri="error"><xsl:value-of select="."/></message>
</xsl:when>
...otherwise
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top