2016-10-07 3 views
0
<NETCAST> 
    <ACTION NParam="7" ShortName="shot" Quarter="1" Position="27"> 
     <PARAM Data="2" Name="Team"/> 
     <PARAM Data="2" Name="Player"/> 
     <PARAM Data="0" Name="Made"/> 
     <PARAM Data="2" Name="Points"/> 
     <PARAM Data="1" Name="AddFlags"/> 
    </ACTION> 
    <ACTION NParam="2" ShortName="assist" Quarter="1" Position="28"> 
     <PARAM Data="2" Name="Team"/> 
     <PARAM Data="21" Name="Player"/> 
    </ACTION> 
    <ACTION NParam="7" ShortName="shot" Quarter="1" Position="29"> 
     <PARAM Data="1" Name="Team"/> 
     <PARAM Data="21" Name="Player"/> 
     <PARAM Data="0" Name="Made"/> 
     <PARAM Data="3" Name="Points"/> 
     <PARAM Data="0" Name="AddFlags"/> 
    </ACTION> 
    <ACTION NParam="7" ShortName="shot" Quarter="1" Position="30"> 
     <PARAM Data="2" Name="Team"/> 
     <PARAM Data="32" Name="Player"/> 
     <PARAM Data="0" Name="Made"/> 
     <PARAM Data="3" Name="Points"/> 
     <PARAM Data="4" Name="AddFlags"/> 
    </ACTION> 
    <ACTION NParam="3" ShortName="reb" Quarter="1" Position="31"> 
     <PARAM Data="1" Name="Team"/> 
     <PARAM Data="-2" Name="Player"/> 
     <PARAM Data="1" Name="Type"/> 
    </ACTION> 
    <ACTION NParam="7" ShortName="shot" Quarter="1" Position="32"> 
     <PARAM Data="1" Name="Team"/> 
     <PARAM Data="15" Name="Player"/> 
     <PARAM Data="1" Name="Made"/> 
     <PARAM Data="2" Name="Points"/> 
     <PARAM Data="3" Name="AddFlags"/> 
    </ACTION> 
</NETCAST> 

мне нужна помощь с запросом XPATH для того, чтобы выбратьXPath выберите дочерний узел на основе многопартийности дочерних узлов атрибуты

ACTION/PARAM [@ Name = "Точка"]/Data (в порядке Todo SUM)

Где

ДЕЙСТВИЯ [NParam = "7"] И

ACTION/PARAM [@ Name = "Команда"] [Data = "1"] И

ACTION/PARAM [@ Name = "Made"] [Data = "0"] AND

ACTION/PARAM [@ Name = "AddFlags"] [Данные = "1" или "3" или "4"]

Я знаю, как выбрать, но использовать только одного ребенка !!!

/NETCAST/ACTION[NParam=7]/PARAM[@Name="Points"]/@Data 

Заранее за вашу помощь.

ответ

1

Непонятно, каков ожидаемый результат точно. Предполагая, что вы хотите найти ACTION, которые соответствуют множеству критериев, основанных на нескольких PARAM «ы атрибутов, вы можете последовать примеру XPath ниже:

/NETCAST 
/ACTION[ 
    @NParam=7 and 
    PARAM[@Name="Team" and @Data="1"] and 
    PARAM[@Name="Made" and @Data="0"] and 
    PARAM[@Name="AddFlags"][@Data="0" or @Data="3" or @Data="4"] 
] 

xpath demo

Учитывая XML и в этом вопросе вход, выход будет:

<ACTION NParam="7" ShortName="shot" Quarter="1" Position="29"> 
    <PARAM Data="1" Name="Team"/> 
    <PARAM Data="21" Name="Player"/> 
    <PARAM Data="0" Name="Made"/> 
    <PARAM Data="3" Name="Points"/> 
    <PARAM Data="0" Name="AddFlags"/> 
</ACTION> 
+0

Xpath, который вы предлагаете, подходит для запроса, но результаты tha Мне нужно получить не весь узел ACTION. Мне нужен только для приведенного выше результата. Используя ваш ответ +/PARAM [@ Name = "Points"], я получил его. Спасибо за точный и быстрый ответ. –

Смежные вопросы