首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSL问题:计算xml属性的行数或换行符的另一种方法

XSL问题:计算xml属性的行数或换行符的另一种方法
EN

Stack Overflow用户
提问于 2010-07-31 00:17:16
回答 2查看 972关注 0票数 1

我在互联网上搜寻过这种查找xml元素中行数的方法:

代码语言:javascript
复制
<xsl:if test="string-length(@Example) - string-length(translate(@Example, '&#xa;', '')) &lt; 10"> 

在上面的示例中,@Example是计算行数的元素。然而,我不喜欢这段代码,因为它会自动变成这样:

代码语言:javascript
复制
    <xsl:if test="string-length(@Example) - string-length(translate(@Example, ' 
', '')) &lt; 10">

您可以看到,代码&#xa;被转换为文字空白行(它表示空白行,但我不希望它成为空白行)。上面的代码风格对我来说似乎不好(如果不是,请告诉我),所以我想用另一种方法来找到@Example中的行数。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2010-07-31 04:00:57

这个风格可能更接近你的preferences

代码语言:javascript
复制
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:variable name="vNL" select="'&#xA;'"/>

 <xsl:template match="t">
  <xsl:value-of select=
    "string-length(@Example)
    -
     string-length(translate(@Example, $vNL, ''))"/>
 </xsl:template>
</xsl:stylesheet>

NL常量保存在变量中,引用此变量不会导致编辑器显示新行。

即使是 $vNL 声明也可以解决这个问题--前提是这是一个全局<xsl:param>,并且值是由转换的外部调用者提供的。

票数 0
EN

Stack Overflow用户

发布于 2010-08-01 05:31:13

只是为了澄清我之前的回答( https://stackoverflow.com/questions/3366181/sharepoint-designer-keeps-turning-xa-within-source-code-into-literal-new-line )

运行此样式表(与Dimitre相同):

代码语言:javascript
复制
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>

 <xsl:variable name="vNL" select="'&#xA;'"/>

 <xsl:template match="xsl:value-of">
  <xsl:value-of select=
    "string-length(@select)
    -
     string-length(translate(@select, $vNL, ''))"/>
 </xsl:template>
</xsl:stylesheet>

以自身为输入,输出:

代码语言:javascript
复制
0

它只适用于这样的输入:

代码语言:javascript
复制
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>

 <xsl:variable name="vNL" select="'&#xA;'"/>

 <xsl:template match="xsl:value-of">
  <xsl:value-of select=
    "string-length(@select)&#xA;
    -&#xA;
     string-length(translate(@select, $vNL, ''))"/>
 </xsl:template>
</xsl:stylesheet>

输出:

代码语言:javascript
复制
2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3373383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档