2016-09-22 71 views
1

嗨, 这是我正在处理的XML,我需要访问特定的数据,请帮助Desired输出是:参考hello world如何在XSL中使用“current()[name()='merge:change']”语句的类型

<catalog 
    xmlns:merge="http://www.merge.org/change" > 
    <cd> 
     <title> 
      <a>Empire Burlesque</a> 
      <b>Manik</b> 
     </title> 
     <artist>  
      <a>Bob Dylan</a> 
      <b>Aayush</b> 
     </artist> 
     <country>  
      <note> 
       <para>A small quantity of hydraulic fluid on the inner cylinder is satisfactory 
        <merge:change>Hello_World 
        </merge:change> 
       </para> 
      </note> 
     </country> 
     <company>Columbia</company> 
     <price>10.90</price> 
     <year>1985</year> 
    </cd> 
    <cd> 
     <title>Hide your heart</title> 
     <artist>Bonnie Tyler</artist> 
     <country>UK</country> 
     <company>CBS Records</company> 
     <price>9.90</price> 
     <year>1988</year> 
    </cd> 
</catalog> 

现在我要访问写在合并中的内容:使用功能,如电流()改变标签[名称()=“合并:改变”]”

我写了这个XSL:但我没有得到任何输出

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:merge="http://www.merge.org/change"> 

    <xsl:template match="catalog"> 
     <xsl:for-each select="cd/country"> 
      <xsl:value-of select="current()/note/para [name()='merge:change']"/> 
      <br/> 
     </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet> 

有人可以帮忙吗?

所需的输出是:

Hello_World 
+2

'的'应该完成这项工作。 – potame

+0

嗨potame,Thanx为您的答复。你能告诉我如何使用“current()/ note/para [name()='merge:change']”这种类型的函数。其实我需要使用函数来访问merge的内容:change。 – Hercules

+0

这不是一个函数,但很可能是一个谓词 –

回答

0

变化

<xsl:value-of select="current()/note/para [name()='merge:change']"/> 

<xsl:value-of select="current()/note/para/*[name()='merge:change']"/> 

表达para/*[name()='merge:change']装置命名段的子merge:change

+0

'current()'部分是多余的。 –

+0

是的。我保留了这部分,因为它包含在他的问题中。 –