使用XPATH获取XML中的特定节点

时间:2016-06-09 09:54:40

标签: xml xslt xpath

这是我的XML输出,我需要使用一个简单的xpath表达式得到值 87654321 ,该表达式是Custom_ID = TN,请注意,此TN Custom_ID的位置可能不会始终位于第二个或者最后一个位置所以我不能使用last()。

<Root>
    <Data>
        <Personal>
            <IDs>
                <Custom_ID>
                    <Custom_ID_Data>
                        <ID>12345678</ID>
                        <ID_Type_Reference>
                            <ID type="Custom_ID">ID</ID>
                        </ID_Type_Reference>
                    </Custom_ID_Data>
                </Custom_ID>
                <Custom_ID>
                    <Custom_ID_Data>
                        <ID>87654321</ID>
                        <ID_Type_Reference>
                            <ID type="Custom_ID">TN</ID>
                        </ID_Type_Reference>
                    </Custom_ID_Data>
                </Custom_ID>
            </IDs>
        </Personal>
    </Data>
</Root>

=============================================== =========================

1 个答案:

答案 0 :(得分:0)

如果您使用//Custom_ID/Custom_ID_Data[ID_Type_Reference/ID[@type = 'Custom_ID'] = 'TN']/ID,则选择ID元素,如果您确实需要字符串值,请在XSLT 1.0中使用string(//Custom_ID/Custom_ID_Data[ID_Type_Reference/ID[@type = 'Custom_ID'] = 'TN']/ID)来获取第一个选定节点的字符串在XSLT / XPath 1.0或//Custom_ID/Custom_ID_Data[ID_Type_Reference/ID[@type = 'Custom_ID'] = 'TN']/ID/string()中获取XSLT / XPath 2.0中任何选定节点的字符串序列。