2014-11-22 63 views
0

输入提供给XSLT id获取名值筑底XSLT代码:对值输入

<input> 
    <id>456</id> 
    <class>1</class> 
</input> 

下面是存储在本地文件中的XML代码,我需要比较值的输入ID与下面的文件中存在的id值一起,并获取相关id值的名称值。

我写

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="text"/> 
    <xsl:variable name="consumerInfoDoc" select="document('local:///details.xml')"/> 
    <xsl:variable name="InputId" select="//id"/> 
    <xsl:variable name="Id" select="$consumerInfoDoc/details/information/id/text()"/> 
    <xsl:if test="$InputId=$Id"> 
     <xsl:value-of select=" "/> 
    </xsl:if> 
</xsl:stylesheet> 

我写了上面的代码

<details> 
    <data> 
     <id>12</id> 
     <name>apple</name> 
    </data> 
    <data> 
     <id>34</id> 
     <name>orange</name> 
    </data> 
</details> 

示例XSLT代码示例之一,请纠正它,并提供完整的代码。 在此先感谢。

回答

0

这样如何:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="text"/> 
    <xsl:variable name="consumerInfoDoc" select="document('local:///details.xml')"/> 

    <xsl:template match="/*"> 
     <xsl:variable name="inputId" select="id" /> 
     <xsl:variable name="matchData" 
        select="$consumerInfoDoc/details/data[id = $inputId]" /> 
     <xsl:value-of select="$matchData/name" /> 
    </xsl:template> 
</xsl:stylesheet> 
+0

rishe ..感谢您的答复。我在这篇文章中学到了新东西..i.e data [id = $ inputId]。 – Anu 2014-11-22 16:21:05

0

可以使用下面的XSLT:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="text"/> 
<xsl:variable name="consumerInfoDoc" select="document('local:///details.xml')"/> 
<xsl:template match="/input"> 
    <xsl:value-of select="$consumerInfoDoc/details/data[id = current()/id]/name"/> 
</xsl:template> 
</xsl:stylesheet> 

的模板相匹配/input(下文档节点的根元素),因此,被处理的当前节点是input 。 在xsl:value-of的XPath中,即$consumerInfoDoc/details/data[id = current()/id]/name,第一个id(在过滤表达式中)实际上是$consumerInfoDoc/details/data/idcurrent()/id/input/id。 这意味着当前节点不会随XPath更改..您正在比较其他文档的ID与输入文档的input/id ..

+0

murthy ...感谢您的回复。你可以请求xplain我这个数据[编号=当前()/编号] – Anu 2014-11-22 16:17:33

+0

我已经通过编辑我的答案做了一些解释..希望它可以帮助 – 2014-11-22 16:35:59