2010-09-07 51 views

Trả lời

-1

Điều này tutorial on XPATH khá đơn giản và dễ làm theo. Ngoài ra, hãy xem các hướng dẫn có liên quan trên XMLXQUERY.

+1

W3Schools không có trong bất kỳ cách nào liên kết với W3C, vui lòng chỉnh sửa văn bản liên kết của bạn. Họ có một số hướng dẫn tốt đẹp và dễ dàng mặc dù. – jasso

5

XPath là ngôn ngữ truy vấn đơn giản phục vụ tìm kiếm trong XML DOM. Tôi nghĩ rằng nó có thể được so sánh với câu lệnh SQL Select với cơ sở dữ liệu. XPath có thể đánh giá nhiều chương trình làm việc với XML và có sử dụng hàng loạt. Tôi khuyên bạn nên học nó.

XQuery mạnh mẽ hơn và phức tạp hơn, nó cũng cung cấp nhiều tùy chọn làm thế nào để chuyển đổi kết quả, nó cung cấp các chu kỳ vv. Nhưng nó cũng là ngôn ngữ truy vấn. Nó cũng được sử dụng như là ngôn ngữ truy vấn vào cơ sở dữ liệu XML. Tôi nghĩ rằng ngôn ngữ này chỉ có sử dụng cụ thể và có lẽ không cần thiết phải biết nó, lúc đầu sẽ có đủ nếu bạn biết rằng nó tồn tại và những gì nó có thể

Có lời giải thích đơn giản tôi hy vọng rằng nó là đủ và có thể hiểu được

-2

Tôi cũng khuyên bạn nên xem trang đó ở phần dưới đây có thể giúp bạn hiểu một số ý tưởng.

link text

+0

Đẹp một Deniz .. –

13

XPath là một cách để định vị các yếu tố cụ thể trong một cây XML.

Ví dụ, do cấu tạo sau đây:

<myfarm> 
    <animal type="dog"> 
    <name>Fido</name> 
    <color>Black</color> 
    </animal> 
    <animal type="cat"> 
    <name>Mitsy</name> 
    <color>Orange</color> 
    </animal> 
</myfarm> 

XPath cho phép bạn đi qua cấu trúc, chẳng hạn như:

/myfarm/animal[@type="dog"]/name/text() 

mà sẽ cung cấp cho bạn "Fido"

XQuery là một ngôn ngữ truy vấn XML sử dụng XPath để truy vấn các cấu trúc XML. Tuy nhiên, nó cũng cho phép các hàm được định nghĩa và gọi, cũng như truy vấn phức tạp các cấu trúc dữ liệu sử dụng các biểu thức FLWOR. FLWOR cho phép tham gia chức năng giữa các tập dữ liệu được định nghĩa trong XML. FLWOR article from wikipedia

mẫu XQuery (sử dụng một số XPath) là:

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 lời giải thích và ví dụ hữu ích. Tuy nhiên 2 sửa đổi: 1) "trong một DOM XML" nên nói "trong một cây XML". DOM là một giao diện cụ thể không cần thiết cho XPath. 2) "XQuery là một phần mở rộng của XPath" - tôi sẽ nói, "XQuery là một ngôn ngữ truy vấn tài liệu XML sử dụng XPath". Nhiều như ngôn ngữ C sử dụng toán tử số học, nhưng C là nhiều hơn "một phần mở rộng của" toán tử số học. – LarsH

+0

Cảm ơn bạn đã phản hồi. Đã làm rõ bài đăng của tôi. –

+0

@LarsH: Cần lưu ý rằng XQuery thực sự là một extenstion (hoặc superset) của XPath. Bất kỳ biểu thức XPath hợp lệ nào cũng là biểu thức XQuery hợp lệ. – Tomas

Các vấn đề liên quan