Phương pháp đánh giá tài liệu XPath C#

XPath có thể được sử dụng để tìm các nút cụ thể phù hợp với một số tiêu chí được xác định trong biểu thức XPath. Bạn có thể sử dụng truy vấn XPath để điều hướng qua tài liệu XML hoặc HTML. Theo đó, bài viết này giải thích cách sử dụng XPath để chọn các nút cụ thể theo yêu cầu của bạn.

Làm việc với XPath để chọn các nút từ tệp XML hoặc HTML - Cài đặt API C#

Aspose.HTML for .NET API có thể được sử dụng để tự động hóa quy trình chọn loại nút cụ thể hoặc đọc thông tin cụ thể từ một nút đã chọn. Bạn có thể nhanh chóng định cấu hình API bằng cách tải xuống tệp DLL từ trang Bản phát hành mới hoặc sử dụng lệnh cài đặt NuGet sau:

PM> Install-Package Aspose.Html

Sử dụng Phương thức XPath Document.Evaluate() để lấy hình ảnh từ một trang web HTML trong C#

Bạn có thể sử dụng phương thức Document.Evaluate() để lấy hình ảnh từ trang web HTML. Vui lòng làm theo các bước dưới đây để hoàn tất quá trình này:

  1. Khởi tạo một đối tượng thuộc lớp HTMLDocument để tải tệp nguồn.
  2. Truyền biểu thức XPath và các tham số khác cho phương thức Đánh giá.
  3. Lặp lại qua các nút đã chọn và nhận liên kết cho từng hình ảnh.

Mẫu mã sau minh họa cách sử dụng phương thức XPath Document.Evaluate() để lấy hình ảnh từ một trang web HTML:

// Tạo một thể hiện của tài liệu HTML
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "xpath.htm")))
{
    // Đánh giá biểu thức XPath
    var result = doc.Evaluate("//main/div[position() mod 2 = 1]//img[@class = 'photo']", doc, doc.CreateNSResolver(doc), Aspose.Html.Dom.XPath.XPathResultType.Any, null);

    // Lặp lại các nút kết quả và in chúng ra bàn điều khiển
    Aspose.Html.Dom.Node node;
    while ((node = result.IterateNext()) != null)
    {
        var img = (Aspose.Html.HTMLImageElement)node;
        Console.WriteLine(img.Src);
    }
}

Sử dụng phương pháp XPath Document.Evaluate() để chọn các nút từ tệp XML trong C#

Trong một số trường hợp nhất định, bạn có thể cần chọn các nút cụ thể từ tệp XML. Các bước sau đây giải thích cách đáp ứng các yêu cầu đó:

  1. Tải tệp XML nguồn bằng lớp HTMLDocument.
  2. Gọi phương thức Đánh giá trong khi truyền biểu thức XPath và các tham số khác.
  3. Lặp lại các nút đã chọn và in toàn bộ nội dung của các nút đã chọn.

Đoạn mã dưới đây cho thấy cách sử dụng phương pháp XPath Document.Evaluate để chọn các nút từ tệp XML:

// Tạo một thể hiện của một tài liệu
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // Đánh giá biểu thức XPath
    var dealers = doc.Evaluate("//Dealer[descendant::Car[descendant::Model > 2005 and descendant::Price < 25000]]", doc, doc.CreateNSResolver(doc), XPathResultType.Any, null);
    Aspose.Html.Dom.Node dealer;

    // Lặp lại các nút kết quả và in nội dung của chúng ra bàn điều khiển
    while ((dealer = dealers.IterateNext()) != null)
    {
        Console.WriteLine(dealer.TextContent);
    }
}

Sử dụng phương pháp XPath Document.Evaluate() để chọn thông tin cụ thể từ các nút được chọn trong C#

Đôi khi, bạn có thể cần lấy thông tin chi tiết cụ thể từ một Nút thay vì toàn bộ nội dung. Bạn có thể làm theo các bước bên dưới để sử dụng truy vấn XPath để nhận thông tin cụ thể từ các nút đã chọn.

  1. Truy cập tệp XML đầu vào bằng lớp HTMLDocument.
  2. Gọi phương thức Đánh giá để nhận các nút khớp với biểu thức XPath.
  3. Lặp qua các nút phù hợp và in nội dung cụ thể từ mỗi nút.

Mẫu mã sau đây giải thích cách chọn thông tin cụ thể từ một nút đã chọn trong XML bằng cách sử dụng phương pháp XPath Document.Evaluate:

// Tạo một thể hiện của một tài liệu
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // Chọn đại lý phù hợp với biểu thức XPath
    var dealers = doc.Evaluate("//Dealer[descendant::Car[descendant::Model > 2005 and descendant::Price < 25000]]", doc, doc.CreateNSResolver(doc), XPathResultType.Any, null);
    Aspose.Html.Dom.Node dealer;

    // Lặp lại các đại lý đã chọn
    while ((dealer = dealers.IterateNext()) != null)
    {
        // Nhận và in tên Đại lý và Điện thoại
        var dealerInfo = doc.Evaluate("concat('Dealer name: ', Name, ' Telephone: ', Telephone)", dealer, doc.CreateNSResolver(doc), XPathResultType.String, null);
        Console.WriteLine(dealerInfo.StringValue);

        // Chọn và in CarID khớp với biểu thức XPath
        var carIds = doc.Evaluate(".//Car[descendant::Model > 2005 and descendant::Price < 25000]/@CarID", dealer, doc.CreateNSResolver(doc), XPathResultType.Any, null);
        Aspose.Html.Dom.Node carId;

        while ((carId = carIds.IterateNext()) != null)
        {
            Console.WriteLine("Car id: " + carId.TextContent);
        }
    }
}

Sử dụng XPath để chọn nút trong C# - Đọc thêm

Bạn có thể tìm hiểu thêm chi tiết về cách làm việc với Truy vấn XPath bằng cách truy cập các chủ đề sau trong phần tài liệu.

Truy vấn XPath để chọn các nút từ HTML hoặc XML trong C# - Giấy phép đánh giá miễn phí

Bạn có thể kiểm tra hết khả năng của các tính năng API mà không có bất kỳ giới hạn nào bằng cách yêu cầu giấy phép tạm thời miễn phí.

Phần kết luận

Trong bài viết này, bạn đã học cách sử dụng phương thức XPath Query Document.Evaluate để chọn các nút cụ thể hoặc nội dung cụ thể của các nút đã chọn phù hợp với biểu thức XPath. Tuy nhiên, trong trường hợp bạn muốn thảo luận về bất kỳ mối quan tâm nào của mình, vui lòng liên hệ với chúng tôi tại diễn đàn hỗ trợ miễn phí.

Xem thêm

Sử dụng Bộ chọn CSS trong HTML bằng C#