我有下面的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>


请建议我一些方法。任何建议和解决方案都必须感谢。

最佳答案

假设我要从第二个节点中选择类型


采用:

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


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



从您的尝试来看,您需要type节点中的SubRoot值,其中Section的值为“ B”。为此,请使用:

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

07-27 21:36