Làm th? nào đ? truy v?n XML v?i m?t bi?u hi?n XPath b?ng cách s? d?ng Visual C#

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 308333 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này ch?ng t? làm th? nào đ? truy v?n m?t XPathDocument đ?i tư?ng v?i m?t bi?u hi?n XML đư?ng d?n ngôn ng? (XPath) s? d?ng các XPathNavigator l?p h?c. XPath đư?c s? d?ng l?p tr?nh đ? đánh giá các bi?u th?c và ch?n các nút c? th? trong m?t tài li?u.

Yêu c?u

Danh sách sau v?ch ra đư?c đ? ngh? ph?n c?ng, ph?n m?m, cơ s? h? t?ng m?ng và gói d?ch v? mà b?n c?n:
  • Visual C#
Bài vi?t này gi? đ?nh r?ng b?n đ? quen thu?c v?i các ch? đ? sau:
  • Thu?t ng? XML
  • Vi?c t?o và đ?c m?t t?p tin XML
  • XPath cú pháp

Làm th? nào đ? truy v?n XML v?i m?t bi?u hi?n XPath

  1. T?o ra m?t m?i Visual C# giao di?n đi?u khi?n đơn trong Visual Studio.

    LƯU ?: Ví d? này s? d?ng m?t t?p tin tên Books.xml. B?n có th? t?o t?p tin Books.xml riêng c?a b?n, ho?c b?n có th? s? d?ng m?u đư?c bao g?m trong các.NET ph?n m?m phát tri?n Kit (SDK) Quickstarts. N?u b?n không có Quickstarts đư?c cài đ?t và không mu?n cài đ?t chúng, xem ph?n "Tham kh?o" cho Books.xml t?i v? v? trí. N?u b?n có Quickstarts đư?c cài đ?t, các t?p tin có th? đư?c t?m th?y trong thư m?c sau đây:
    Chương tr?nh Files\Microsoft.NET\FrameworkSDK\Samples\Quickstart\Howto\Samples\Xml\Transformxml\VB
    B?n ph?i sao t?p đ?n thư m?c \Bin\Debug, n?m dư?i thư m?c mà b?n t?o ra d? án này.
  2. Đ?m b?o r?ng các d? án tham chi?u các System.xml không gian tên.
  3. S? d?ng các b?ng cách s? d?ng tuyên b? v? s? XMLXPath không gian tên do đó b?n không ph?i vư?t qua v?ng lo?i t? khai trong nh?ng không gian tên sau trong m? c?a b?n. B?n ph?i s? d?ng các b?ng cách s? d?ng tuyên b? trư?c đ? b?t k? t? khai khác, như sau:
    using System.Xml;
    using System.Xml.XPath;
    					
  4. Khai báo các bi?n thích h?p. Tuyên b? m?t XPathDocument đ?i tư?ng đ? gi? tài li?u XML, m?t XpathNavigator đ?i tư?ng đ? đánh giá các bi?u th?c XPath, và m?t XPathNodeIterator đ?i tư?ng đ? iterate qua các nút đ? ch?n. Tuyên b? m?t Chu?i đ?i tư?ng gi? XPath expressions. Thêm m? tuyên b? trong các Chính ch?c năng trong Class1.
       XPathNavigator nav;
       XPathDocument docNav;
       XPathNodeIterator NodeIter;
       String strExpression;
    					
  5. T?i m?t XPathDocument v?i các m?u t?p tin Books.xml. Các XPathDocument l?p s? d?ng phép bi?n đ?i ngôn ng? Extensible Stylesheet (XSLT) đ? cung c?p m?t b? nh? cache nhanh và hi?u su?t theo đ?nh hư?ng cho x? l? tài li?u XML. Nó tương t? như đ? XML Document Object Model (DOM) nhưng cao t?i ưu hóa cho x? l? XSLT và mô h?nh d? li?u XPath.
        // Open the XML.
        docNav = new XPathDocument(@"c:\books.xml");
    					
  6. T?o ra m?t XPathNavigator t? tài li?u. Các XPathNavigator đ?i tư?ng đư?c dùng đ? ch? đ?c XPath truy v?n. XPath truy v?n có th? tr? v? m?t giá tr? k?t qu? ho?c nhi?u các nút.
         // Create a navigator to query with XPath.
         nav = docNav.CreateNavigator();
    					
  7. T?o ra m?t bi?u hi?n XPath đ? t?m chi phí trung b?nh cho m?t cu?n sách. Này bi?u hi?n XPath tr? v? m?t giá tr? duy nh?t. Đ?y đ? chi ti?t v? XPath cú pháp, xem "XPath cú pháp" ? ph?n "Tham kh?o".
         // Find the average cost of a book.
         // This expression uses standard XPath syntax.
         strExpression = "sum(/bookstore/book/price) div count(/bookstore/book/price)";
    					
  8. S? d?ng các Đánh giá phương pháp c?a các XPathNavigator đ?i tư?ng đ? đánh giá các bi?u th?c XPath. Các Đánh giá phương pháp tr? v? các k?t qu? c?a bi?u th?c.
        // Use the Evaluate method to return the evaluated expression.
        Console.WriteLine("The average cost of the books are {0}", nav.Evaluate(strExpression));
  9. T?o ra m?t bi?u hi?n XPath đ? t?m t?t c? các sách mà chi phí nhi?u hơn mư?i đô la. Bi?u hi?n XPath này tr? v? ch? tiêu đ? các nút t? ngu?n XML.
        // Find the title of the books that are greater then $10.00.
        strExpression = "/bookstore/book/title[../price>10.00]";
    					
  10. T?o ra m?t XPathNodeIterator Đ?i v?i các nút đư?c ch?n v?i các Ch?n phương pháp c?a các XPathNavigator. Các XPathNodeIterator đ?i di?n cho m?t nodeset XPath và do đó h? tr? ho?t đ?ng t? ngày nodeset này.
        // Select the node and place the results in an iterator.
        NodeIter = nav.Select(strExpression);
  11. S? d?ng các XPathNodeIterator, mà đ? đư?c tr? l?i t? các Ch?n phương pháp XPathNavigator, đ? di chuy?n qua các nút đ? ch?n. Trong trư?ng h?p này, b?n có th? s? d?ng các MoveNext phương pháp c?a các XPathNodeIterator đ? iterate qua t?t c? các nút đ? ch?n.
      Console.WriteLine("List of expensive books:");
      //Iterate through the results showing the element value.
      while (NodeIter.MoveNext())
      {
          Console.WriteLine("Book Title: {0}", NodeIter.Current.Value);
      };
    					
  12. S? d?ng các ReadLine phương pháp đ? thêm m?t t?m d?ng vào cu?i màn h?nh giao di?n đi?u khi?n d? dàng hơn hi?n th? k?t qu? trên.
        // Pause
        Console.ReadLine();
    					
  13. Xây d?ng và ch?y d? án c?a b?n. Lưu ? r?ng các k?t qu? đư?c hi?n th? trong c?a s? giao di?n đi?u khi?n.

Khắc phục sự cố

Khi b?n ki?m tra m?, b?n có th? nh?n các thông báo l?i ngo?i l? sau đây:
M?t ngo?i l? unhandled c?a lo?i 'System.Xml.XmlException' đ? x?y ra trong System.xml.dll

Thông tin b? sung: l?i h? th?ng.
X?y ra l?i ngo?i l? vào d?ng sau M?:
docNav = new XPathDocument("c:\\books.xml");
				
Ngo?i l? l?i gây ra b?i m?t ch? d?n x? l? không h?p l?. Ví d?, các hư?ng d?n ch? bi?n có th? ch?a kho?ng tr?ng không liên quan. Dư?i đây là m?t ví d? v? m?t hư?ng d?n ch? bi?n không h?p l?:
<?xml version='1.0' ?>
Đ? gi?i quy?t trư?ng h?p ngo?i l?, làm m?t trong nh?ng đi?u sau đây:
  • Chính xác hư?ng d?n ch? bi?n không h?p l?. Dư?i đây là m?t ví d? v? m?t ch? d?n x? l? h?p l?:
    <?xml version='1.0'?>
    -OR-
  • H?y b? các ch? d?n x? l? XML t? các t?p tin Books.xml.

THAM KH?O

Các t?p tin sau đây có s?n đ? t?i v? t? Microsoft Download Center:
Thu g?n h?nh ?nh nàyBung r?ng h?nh ?nh này
T?i v?
T?i v? Books.xml bây gi?
Đ? bi?t thêm chi ti?t, h?y truy c?p trang Web Microsoft sau đây:
XML trong.NET:.NET Framework XML l?p và C# cung c?p đơn gi?n, kh? năng m? r?ng d? li?u Manipulation
http://MSDN.Microsoft.com/msdnmag/issues/01/01/XML/Default.aspx

XPathNavigator l?p
http://MSDN.Microsoft.com/en-US/Library/System.xml.XPath.xpathnavigator.aspx

XPathDocument l?p
http://MSDN.Microsoft.com/en-US/Library/System.xml.XPath.xpathdocument.aspx

XPathNodeIterator l?p
http://MSDN.Microsoft.com/en-US/Library/System.xml.XPath.xpathnodeiterator.aspx

XSLT bi?n đ?i v?i l?p XslTransform
http://MSDN.Microsoft.com/en-US/Library/47yh29a9.aspx

XPath cú pháp
http://msdn2.Microsoft.com/en-US/Library/ms763742.aspx
Đ? bi?t thêm chi ti?t v? XPath, ghé thăm Web site sau c?a World Wide Web Consortium (W3C):
XML đư?ng d?n ngôn ng? (XPath)
Phiên b?n 1.0: W3C khuy?n ngh? 16 tháng 11 năm 1999
http://www.w3.org/TR/1999/Rec-XPath-19991116

Thu?c tính

ID c?a bài: 308333 - L?n xem xét sau cùng: 27 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
T? khóa: 
kbdownload kbhowtomaster kbmt KB308333 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:308333

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com