Pie*_*ing 8 xslt xpath xmlnode
给出以下XML:
<current>
<login_name>jd</login_name>
</current>
<people>
<person>
<first>John</first>
<last>Doe</last>
<login_name>jd</login_name>
</preson>
<person>
<first>Pierre</first>
<last>Spring</last>
<login_name>ps</login_name>
</preson>
</people>
Run Code Online (Sandbox Code Playgroud)
如何从当前/登录匹配器中获取"John Doe"?
我尝试了以下方法:
<xsl:template match="current/login_name">
<xsl:value-of select="../people/first[login_name = .]"/>
<xsl:text> </xsl:text>
<xsl:value-of select="../people/last[login_name = .]"/>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
Jen*_*niT 10
我定义了一个为人们编制索引的键:
<xsl:key name="people" match="person" use="login_name" />
Run Code Online (Sandbox Code Playgroud)
在这里使用密钥只是保持代码干净,但如果您经常需要<person>
根据<login_name>
子代检索元素,您可能还会发现它对提高效率很有帮助.
我有一个模板返回给定的格式化名称<person>
:
<xsl:template match="person" mode="name">
<xsl:value-of select="concat(first, ' ', last)" />
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
然后我会这样做:
<xsl:template match="current/login_name">
<xsl:apply-templates select="key('people', .)" mode="name" />
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
25048 次 |
最近记录: |