我是编程新手。我知道XML是什么。任何人都可以用简单的术语解释xpath和xquery在哪里使用它们?
答案 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)