2010-01-20 40 views
7

Tôi đang cập nhật mã để sử dụng MSXML6.0 từ MSXML3.0. Tuy nhiên, tôi nhận thấy rằng, đối với MSXML3.0, mặc định "SelectionLanguage" là "XSL Pattern", trong khi MSXML6.0 chỉ hỗ trợ XPath. Tôi lo ngại rằng thay đổi này sẽ giới thiệu sự khác biệt trong cú pháp truy vấn.Sự khác nhau giữa XSL Pattern và XPath là gì?

Ai đó có thể liệt kê sự khác biệt về cú pháp giữa hai cú pháp này không?

Trả lời

4

Pattern XSL, nếu tôi nhớ không lầm, là một ngôn ngữ lựa chọn như XPath nhưng được thực hiện bởi Microsoft trước XPath đã được chuẩn hóa (thậm chí có thể được tạo ra). Tôi không nghĩ rằng bất cứ ai thậm chí có bất cứ điều gì mà tài liệu mẫu XSL nữa. Về cơ bản bạn có thể quên nó và tập trung vào XPath. Nó có cùng mục đích nhưng được hỗ trợ và chuẩn hóa.

0

XPath, theo kinh nghiệm của tôi, dễ dàng hơn để có được đầu của bạn xung quanh. Tôi tránh XSL như bệnh dịch hạch nếu tôi có thể. Nhưng bạn nói đúng, cú pháp rất khác, vì vậy nếu bạn muốn chuyển từ XSL sang XPath, bạn có một số công việc phía trước bạn. Tôi không thể giải thích sự khác biệt một cách dễ dàng, nhưng hướng dẫn này sẽ cho bạn một số ý tưởng về những gì XPath là về:

http://www.w3schools.com/XPath/xpath_examples.asp

+0

Mẫu XSL không giống với XSL. Mẫu XSL là cách tối nghĩa –

4

Điều mà tôi đã vấp phải là chọn nút đầu tiên trong tập hợp nút. Ví dụ: chúng tôi đã sử dụng MSXML 3.0 (sử dụng XSLPattern) và có các truy vấn như sau:

/root/book[0] 

Truy vấn này được yêu cầu chọn sách đầu tiên. Điều này làm việc với XSLPattern. Nhưng với XPath, điều này là chính xác:

/root/book[1] 

Vì vậy, khi tôi chuyển sang sử dụng MSXML 6.0, sử dụng đúng XPath, tất cả các truy vấn "[0]" đều ngừng hoạt động.

Cập nhật: Tôi chỉ tìm thấy liên kết này mà nói một số chi tiết về XSLPattern và XPath:

MSDN Magazine: MSXML 3.0 Hỗ trợ XPath 1.0, XSLT 1.0, XDR, và sax2

http://msdn.microsoft.com/en-us/magazine/cc302348.aspx

Cập nhật # 2:

Dưới đây là Thông số W3C về XSLT bao gồm các mẫu XSL:

http://www.w3.org/TR/1998/WD-xsl-19981216.html#AEN376

Update # 3

Đây là một bài mô tả điều tương tự tôi đã đề cập ở trên:

http://www.eggheadcafe.com/software/aspnet/29579789/xml-parsing.aspx

1

Patterns XSL dường như là một phần của WD-XSL, "làm việc dự thảo XSL" , có nghĩa là các phiên bản trước đề xuất XSL (1999), khác biệt đáng kể so với phiên bản 1.0 cuối cùng.

Microsoft có relevant info on "XSL Patterns". Dưới đây là một trích dẫn từ phần XPath 1.0 API:

MSXML 2.0 cung cấp hỗ trợ cho các mẫu XSL, tiền thân của XPath 1.0. Khái niệm về một ngôn ngữ địa chỉ XML đã được đưa vào bản W3C XSL Working Drafts (http://www.w3.org/TR/1998/WD-xsl-19981216.html) và được gọi là các mẫu XSL. MSXML 2.0 thực hiện ngôn ngữ các mẫu XSL như được mô tả trong đặc tả XSL ban đầu với một vài ngoại lệ nhỏ.

MSXML 3.0 cung cấp hỗ trợ cho cú pháp mẫu XSL cũ cũng như XPath 1.0.

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