如何使用xsl转换获取标记的文本值

时间:2014-06-03 12:07:42

标签: xslt xpath

我有这样的XML

<Error>An error has occured while saving the workflow
    <ErrorFile>C:\temp\Log\ErrorImages\accountwf38_1401351602333.png</ErrorFile>
</Error>

当我写这样的XSL转换时

<xsl:value-of select="Error"/>

我将整个错误值作为输出,包括错误文件值。 但我只需要An error has occured while saving the workflow作为输出。我怎样才能为此编写转换?

由于

Rajendar

1 个答案:

答案 0 :(得分:1)

  

我获取整个错误值作为输出,包括错误文件值,但我只需要在将工作流程保存为输出时发生错误

<Error>元素具有三个子节点。文本节点,元素(ErrorFile)节点和另一个文本节点(包含新行和结束标记之前的一些空格)`。

您使用的XPath表达式选择整个Error节点,该节点在<xsl:value-of>中使用时转换为string value,该节点由转换为字符串的所有后代组成。 / p>

要获得所需内容,可以使用以下表达式:

<xsl:value-of select="Error/text()"/>

将仅选择子文本节点。

你可以使用以下方法摆脱不必要的空间:

    <xsl:value-of select="normalize-space(Error/text())"/>