Объясните xpath и xquery в простых терминах - PullRequest
7 голосов
/ 07 сентября 2010

Я новичок в программировании. Я знаю, что такое XML. Кто-нибудь может объяснить в простых терминах, что делают xpath и xquery Где они используются?

Ответы [ 2 ]

14 голосов
/ 09 сентября 2010

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>
5 голосов
/ 07 сентября 2010

XPath - это простой язык запросов, который служит для поиска в XML DOM. Я думаю, что это можно сравнить с операторами SQL Select с базами данных. XPath может оценивать многие программы, которые работают с XML и имеют массовое использование. Я рекомендую вам узнать это.

XQuery гораздо более мощный и сложный, он также предлагает множество вариантов преобразования результата, циклы и т. Д. Но также это язык запросов. Он также используется в качестве языка запросов для баз данных XML. Я думаю, что этот язык имеет только определенное использование и, вероятно, нет необходимости знать его, в начале будет достаточно, если вы знаете, что он существует и что он может

Есть простое объяснение, я надеюсь, что этого достаточно и понятно

...