用简单的术语解释xpath和xquery

时间:2010-09-07 07:02:17

标签: xpath xquery

我是编程新手。我知道XML是什么。任何人都可以用简单的术语解释xpath和xquery在哪里使用它们?

2 个答案:

答案 0 :(得分:14)

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()

会给你“Fido”

XQuery 是一种XML查询语言,它使用XPath来查询XML结构。但是,它还允许定义和调用函数,以及使用 FLWOR 表达式复杂查询数据结构。 FLWOR允许在XML中定义的数据集之间的连接功能。 FLWOR article from wikipedia

示例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>

答案 1 :(得分:5)

XPath是一种简单的查询语言,用于在XML DOM中搜索。我认为它可以与带有数据库的SQL Select语句进行比较。 XPath可以评估许多使用XML并具有大量使用的程序。我建议你学习它。

XQuery更强大,更复杂,它还提供了许多选项,如何转换结果,它提供周期等。但它也是查询语言。它还用作XML数据库的查询语言。我认为这种语言只有特定的用法,而且可能没有必要去了解它,如果你知道它存在并且可以做什么,那么一开始会有足够的用途

有一个简单的解释我希望它足够且易于理解