Xpath获取名称和URL模式

时间:2018-10-03 16:13:13

标签: xpath

我正在尝试使用Xpath来获取L7:Name和L7:UrlPattern的以下值

<l7:Name>SERVICE List</l7:Name>
<l7:UrlPattern>/*</l7:UrlPattern>

请求

   <?xml version="1.0" encoding="UTF-8"?>
<l7:List xmlns:l7="http://ns.l7tech.com/2010/04/gateway-management">
    <l7:Name>SERVICE List</l7:Name>
    <l7:Type>List</l7:Type>
    <l7:TimeStamp>2018-10-03T10:14:59.409-05:00</l7:TimeStamp>
    <l7:Link rel="self" uri="https://company/restman/1.0/services?sort=name&amp;order=desc"/>
    <l7:Link rel="template" uri="https://company/restman/1.0/services/template"/>
    <l7:Item>
        <l7:Name>Service not found Catch-all</l7:Name>
        <l7:Id>cd5853a68445a82e1384676c9fc8e7c1</l7:Id>
        <l7:Type>SERVICE</l7:Type>
        <l7:TimeStamp>2018-10-03T10:14:59.406-05:00</l7:TimeStamp>
        <l7:Link rel="self" uri="https://company/restman/1.0/services/cd5853a68445a82e1384676c9fc8e7c1"/>
        <l7:Resource>
            <l7:Service id="cd5853a68445a82e1384676c9fc8e7c1" version="2">
                <l7:ServiceDetail folderId="cd5853a68445a82e1384676c9fc8e6ae" id="cd5853a68445a82e1384676c9fc8e7c1" version="2">
                    <l7:Name>Service not found Catch-all</l7:Name>
                    <l7:Enabled>true</l7:Enabled>
                    <l7:ServiceMappings>
                        <l7:HttpMapping>
                            <l7:UrlPattern>/*</l7:UrlPattern>
                            <l7:Verbs>
                                <l7:Verb>GET</l7:Verb>
                                <l7:Verb>POST</l7:Verb>
                                <l7:Verb>PUT</l7:Verb>
                                <l7:Verb>HEAD</l7:Verb>
                            </l7:Verbs>
                        </l7:HttpMapping>
                    </l7:ServiceMappings>
                </l7:ServiceDetail>
            </l7:Service>
        </l7:Resource> 
    </l7:Item>  
</l7:List>

我尝试过的Xpath

/l7:List/l7:Item//*[self::l7:Name or self::l7:UrlPattern]/text()

这会给我输出

<?xml version="1.0" encoding="UTF-8"?>
<result>
Service not found Catch-all
Service not found Catch-all
/*
</result>

我想知道如何仅获取一个名称以及与此相关的URLPattern。

像这样吗?

<?xml version="1.0" encoding="UTF-8"?>
<result>
Service not found Catch-all
/*
</result>

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

尝试更具体一些,例如

/l7:List/l7:Name/text() | /l7:List/l7:Item//l7:UrlPattern/text()

Online Demo