xml - XSLT - 属性的出现

标签 xml xslt xpath

我有以下xml:

<Books>   
 <Book author="John" country="Norway"/>   
 <Book author="Paul" />    
 <Book author="Steve" country="England"/>      
</Books>
<Books>       
 <Book author="George" />    
 <Book author="Thomas" country="Germany"/>   
</Books>

我想在每个“书籍”元素中找到属性“国家”的位置。
<Books>   
 <Book author="John" country="Norway"/>    --1
 <Book author="Paul" />    
 <Book author="Steve" country="England"/> --2
 <Book author="Bob" country="Denmark"/>  --3  
</Books>
<Books>       
 <Book author="George" />    
 <Book author="Thomas" country="Germany"/>  --1 
</Books>

我们可以为此使用哪个 XPath 函数?

最佳答案

您可以计算具有该属性的先前 sibling 的数量,这是一个模板,显示:

<xsl:stylesheet 
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="Books/Book[@country]">
  <xsl:value-of select="count(preceding-sibling::Book[@country]) + 1"/> 
</xsl:template>

</xsl:stylesheet>

关于xml - XSLT - 属性的出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13458279/

相关文章:

xml - Eclipse 如何在 XML 目录中生成插件指定条目?

php - 使用命名空间选择属性值的 XPath

xml - 如果节点有时是不同的元素,如何对节点进行编号

java - 带有 xsl 的 xml :sort not sorting

node.js - 使用Node.js中的XSLT字符串将XML字符串[不是文件!]转换为HTML

xml - 轴导航期间的xpath上下文节点

java - JAXB 编码 使用 CDATA 解码

xml - XSLT:如果标签存在,应用模板;如果不是,选择静态值

c# - XDocument 的简单搜索

XPath 在任何文本节点中查找文本