首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用xsl计算特定xml节点中的字数。

使用xsl计算特定xml节点中的字数。
EN

Stack Overflow用户
提问于 2011-07-20 08:51:44
回答 1查看 1.4K关注 0票数 1

在某些情况下,我需要计算特定节点中的单词数。考虑以下xml文档。

代码语言:javascript
复制
<root>
<mainNode>     
<book>      
<price> 100 </price>     
<city> chennai </city>    
<list>      
<language> c java ruby </language>    
</list>  
</book> 

<book>     
<price> 200 </price>     
<city> banglore </city>     
<list>           
<language> c java </language>       
</list>     
<list>           
<language> c++ java </language>       
</list>     
<list>
<language> pascal java </language>       
</list>
</book>  

<book>   
<price> 300 </price>    
<city> delhi </city>     
<list>         
<language> java ruby </language>     
</list>   
</book>

</mainNode>
</root>

在上面的文档中,我需要计算“语言”节点中的语言数量。

输出,如计数::11

我怎么弄到这个?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-20 10:39:24

在您的示例中,所有语言都在文本中填充空格。

代码语言:javascript
复制
<language> c java ruby </language> 

您是否可以假设情况总是这样,或者您会得到像这样的语言元素?

代码语言:javascript
复制
<language>c java ruby</language> 

在本例中,将所有语言元素连接在一起将产生如下字符串,其中显示七个单词。

代码语言:javascript
复制
c java rubyc javac++ javapascal javajava ruby

为了处理这种情况,您可能需要匹配language元素,并返回一个字符串,该字符串后面总是有一个空格。

试试这个XSLT..。

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

   <xsl:template match="/">
      <xsl:variable name="languagelist">
         <xsl:apply-templates select="//language"/>
      </xsl:variable>
      <!-- Count the number of words by counting the number of spaces -->
      Count:<xsl:value-of select="string-length($languagelist) - string-length(translate($languagelist, ' ', ''))" />
   </xsl:template>

   <!-- Return the normalised string with one space at the end -->
   <xsl:template match="language">
      <xsl:value-of select="concat(normalize-space(.), ' ')" />
   </xsl:template>

</xsl:stylesheet>

注意,计算单词数的方法是比较规范化字符串的长度(用单个空格)和没有空格的字符串的长度。(即计算空格数)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6759298

复制
相关文章

相似问题

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