str:tokenize在Less Than字符上失败

时间:2017-07-11 14:58:59

标签: xslt xslt-1.0 exslt

我正在使用XSLT 1.0解析文本文件。我在换行符上进行了标记。每当我遇到一个'<'模板停止的字符,不再输出数据。

文本文件:

test1
test2 < test
test3

模板

<xsl:template match="/">
  <vce>
    <!-- tokenize on line endings -->
    <xsl:for-each select="str:tokenize(.,'&#10;')">
      <xsl:apply-templates select="." mode="new-document" />
    </xsl:for-each>
  </vce>
</xsl:template>

<xsl:template match="*" mode="new-document">
  <document>
    <content name="test">
      <xsl:value-of select="." />
    </content>
  </document>
</xsl:template>

输出:

<vce>
  <document>
    <content name="test">test1</content>
  </document>
  <document>
    <content name="test">test2 </content>
  </document>
</vce>

预期产出:

<vce>
  <document>
    <content name="test">test1</content>
  </document>
  <document>
    <content name="test">test2 < test</content>
  </document>
  <document>
    <content name="test">test3</content>
  </document>
</vce>

str:tokenize是否存在某些字符的问题?

0 个答案:

没有答案