XPath - это способ определения местоположения определенных элементов в дереве XML.
Например, учитывая следующую структуру:
<myfarm>
<animal type="dog">
<name>Fido</name>
<color>Black</color>
</animal>
<animal type="cat">
<name>Mitsy</name>
<color>Orange</color>
</animal>
</myfarm>
XPath позволяет вам проходить по структуре, например:
/myfarm/animal[@type="dog"]/name/text()
, что даст вам «Фидо»
XQuery - это язык запросов XML, который использует XPath для запроса структур XML.Однако он также позволяет определять и вызывать функции, а также выполнять сложные запросы к структурам данных, используя выражения FLWOR .FLWOR обеспечивает функциональность соединения между наборами данных, определенными в XML. FLWOR статья из википедии
Пример XQuery (с использованием некоторого XPath):
declare function local:toggle-boolean($b as xs:string)
as xs:string
{
if ($b = "Yes") then "true"
else if ($b = "No") then "false"
else if ($b = "true") then "Yes"
else if ($b = "false") then "No"
else "[ERROR] @ local:toggle-boolean"
};
<ResultXML>
<ChangeTrue>{ local:toggle-boolean(doc("file.xml")/article[@id="1"]/text()) }</ChangeTrue>
<ChangeNo>{ local:toggle-boolean(doc("file.xml")/article[@id="2"]/text()) }</ChangeNo>
</ResultXML>