在XSL中从XML文件中提取单个元素的值

时间:2016-11-28 11:19:04

标签: java xml xslt

我有以下xml文件,我想从任何节点中提取单个元素,

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <SubRoot>
        <type>A</type>
        <mand>Y</mand>
        <Section>B</Section>
    </SubRoot>
    <SubRoot>
        <type>B</type>
        <mand>Y</mand>
        <Section>A</Section>
    </SubRoot>
</root>

从上面的xml文件中我怎样才能从XSL中的任何type节点获取SubRoot元素的值。SubRoot节点的数量是未知的。它可以是一个,两个,三个或三个以上。 我不想使用模板和每个循环。

我尝试了以下内容,但我没有得到任何价值

<xsl:if test="(/root/SubRoot/[Section = 'B'])">
 <xsl:value-of select="/root/SubRoot/@type"/>
 </xsl:if>

请建议我一些方法。必须赞赏任何建议和解决方案。

1 个答案:

答案 0 :(得分:2)

  

假设我想从第二个节点

中选择类型

使用:

<xsl:value-of select="/root/SubRoot[2]/type"/>

从第二个type节点中提取SubRoot值。

根据您的尝试判断,您需要来自type节点的SubRootSection的值为“B”。为此,请使用:

<xsl:value-of select="/root/SubRoot[Section='B']/type"/>