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

Java 从XSL中的XML文件中提取单个元素的值,java,xml,xslt,Java,Xml,Xslt,我有下面的xml文件,我想从任何节点提取一个元素 <?xml version="1.0" encoding="UTF-8"?> <root> <SubRoot> <type>A</type> <mand>Y</mand> <Section>B</Section> </SubRoot> <SubRoot

我有下面的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>
请给我一些建议。任何建议和解决方案都必须感谢

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

使用:

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

使用:



@type
不会引用属性吗?您是否尝试过
/root/SubRoot/type
?我对您的预期结果有点困惑。@Fildor通过使用/root/SubRoot/type,我得到了第一个子循环节点的值。假设我想从第二个节点选择type,那么我怎么做。子循环的数量我不知道。@Zia不是您的问题回答?@michael.hor257k非常感谢您的回答。
@type
是否会引用属性?您是否尝试过
/root/SubRoot/type
?我对您的预期结果有点困惑。@Fildor通过使用/root/SubRoot/type,我得到了第一个子循环节点的值。假设我想从第二个节点选择type,那么我怎么做。子循环的数量我不知道。@Zia不是您的问题回答?@michael.hor257k非常感谢它的回答。实际上子运行节点的数量未知。我不知道有多少节点将响应,我需要根据一些条件从所有子运行节点获取值,如我的问题中所述,我已经编写了一个if条件if section iequal to B,然后从中获取元素类型的值该subroot节点。我的节值对于每个subroot节点都是唯一的。那么,第二个版本应该适合您-不是吗?非常感谢。您的第二种方法正在工作。我有一个问题是,这种类型的代码有任何浏览器兼容性问题,或者应该适用于所有浏览器。@Zia它是纯简单的XSLT 1.0,因此,我不希望出现任何问题。非常感谢您的帮助,并在这个问题上成为我的导师。继续做大量的工作。实际上子运行节点的数量未知。我不知道有多少节点将响应,我需要根据一些条件从所有子运行节点获取值,如在我的问题中,我已经编写了一个if条件如果截面等于B,则从该子轨迹节点获取元素类型的值。对于每个子轨迹节点,我的截面值将是唯一的。嗯,那么第二个版本应该适合您-不是吗?非常感谢。您的第二个方法正在工作。我有一个问题是这种类型的代码有任何浏览器兼容性问题,或者它应该适合所有浏览器。@Zia它是纯简单的XSLT 1.0,所以我不希望有任何问题。非常感谢你的帮助,并在这个问题上成为我的导师。继续做好工作
<xsl:if test="(/root/SubRoot/[Section = 'B'])">
 <xsl:value-of select="/root/SubRoot/@type"/>
 </xsl:if>
<xsl:value-of select="/root/SubRoot[2]/type"/>
<xsl:value-of select="/root/SubRoot[Section='B']/type"/>