2010-09-07 38 views

回答

-1

这个tutorial on XPATH是相当简单,易于遵循。还请查看XMLXQUERY上的相关教程。

+1

W3Schools的是不符合W3C没有任何关系,请修复您的链接文本。不过,他们确实有一些不错的教程。 – jasso 2010-09-12 16:44:43

5

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

XQuery更强大和复杂它也提供了许多选项如何转换结果,它提供了循环等,但它也是查询语言。它也被用作XML数据库中的查询语言。我认为这种语言只有具体的用法,可能没有必要知道它,一开始就会有足够的,如果你知道它存在,它可以做什么

有一个简单的解释,我希望它是足够的,可以理解的

-2

我也建议你看看下面这个页面,这可能有助于得到一些想法。

link text

+0

不错的一个德尼兹.. – 2012-07-05 10:10:08

13

的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是一种使用XPath查询XML结构的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> 
+2

+1有用的解释和例子。但是2个更正:1)“在XML DOM中”应该说“在XML树中”。 DOM是XPath不需要的特定接口。 2)“XQuery是XPath的扩展” - 我会说,“XQuery是一种使用XPath的XML文档查询语言”。就像C语言使用算术运算符一样,但C远不止是“算术运算符的扩展”。 – LarsH 2010-09-13 17:00:20

+0

感谢您的反馈。澄清我的帖子。 – 2010-09-16 13:32:25

+0

@LarsH:值得注意的是,XQuery实际上是XPath的扩展(或超集)。任何有效的XPath表达式也是有效的XQuery表达式。 – Tomas 2012-04-10 14:54:43