วิธีประเมินเอกสาร XPath C#

XPath สามารถใช้เพื่อค้นหาโหนดเฉพาะที่ตรงกับเกณฑ์ที่กำหนดในนิพจน์ XPath คุณสามารถใช้แบบสอบถาม XPath เพื่อนำทางผ่านเอกสาร XML หรือ HTML ดังนั้น บทความนี้จะอธิบายวิธีใช้ XPath เพื่อเลือกโหนดเฉพาะตามความต้องการของคุณ

ทำงานกับ XPath เพื่อเลือกโหนดจากไฟล์ XML หรือ HTML - การติดตั้ง C# API

Aspose.HTML สำหรับ .NET สามารถใช้ API เพื่อทำให้กระบวนการอัตโนมัติเพื่อเลือกประเภทโหนดที่ต้องการ หรืออ่านข้อมูลเฉพาะจากโหนดที่เลือก คุณสามารถกำหนดค่า API ได้อย่างรวดเร็วโดยดาวน์โหลดไฟล์ DLL จากหน้า New Releases หรือใช้คำสั่งติดตั้ง NuGet ต่อไปนี้:

PM> Install-Package Aspose.Html

ใช้ XPath Document.Evaluate() วิธีการรับรูปภาพจากเว็บเพจ HTML ใน C#

คุณอาจใช้เมธอด Document.Evaluate() เพื่อรับรูปภาพจากเว็บเพจ HTML โปรดปฏิบัติตามขั้นตอนด้านล่างเพื่อดำเนินการตามขั้นตอนนี้:

  1. เริ่มต้นวัตถุของคลาส HTMLDocument เพื่อโหลดไฟล์ต้นฉบับ
  2. ส่งนิพจน์ XPath และพารามิเตอร์อื่นๆ ไปยังเมธอด Evaluate
  3. ทำซ้ำผ่านโหนดที่เลือกและรับลิงก์สำหรับแต่ละภาพ

ตัวอย่างโค้ดต่อไปนี้สาธิตวิธีการใช้ XPath Document.Evaluate() วิธีการรับรูปภาพจากเว็บเพจ HTML:

// สร้างตัวอย่างของเอกสาร HTML
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "xpath.htm")))
{
    // ประเมินนิพจน์ 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);

    // วนซ้ำโหนดผลลัพธ์และพิมพ์ไปยังคอนโซล
    Aspose.Html.Dom.Node node;
    while ((node = result.IterateNext()) != null)
    {
        var img = (Aspose.Html.HTMLImageElement)node;
        Console.WriteLine(img.Src);
    }
}

ใช้ XPath Document.Evaluate() วิธีการเลือกโหนดจากไฟล์ XML ใน C#

ในบางกรณี คุณอาจต้องเลือกโหนดเฉพาะจากไฟล์ XML ขั้นตอนต่อไปนี้จะอธิบายวิธีปฏิบัติตามข้อกำหนดดังกล่าว:

  1. โหลดไฟล์ XML ต้นฉบับด้วยคลาส HTMLDocument
  2. เรียกใช้เมธอด Evaluate ขณะที่ส่งนิพจน์ XPath และพารามิเตอร์อื่นๆ
  3. ทำซ้ำบนโหนดที่เลือกและพิมพ์เนื้อหาทั้งหมดของโหนดที่เลือก

ข้อมูลโค้ดด้านล่างแสดงวิธีใช้ XPath Document.Evaluate method เพื่อเลือกโหนดจากไฟล์ XML:

// สร้างตัวอย่างของเอกสาร
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // ประเมินนิพจน์ 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;

    // วนซ้ำโหนดผลลัพธ์และพิมพ์เนื้อหาไปยังคอนโซล
    while ((dealer = dealers.IterateNext()) != null)
    {
        Console.WriteLine(dealer.TextContent);
    }
}

ใช้ XPath Document.Evaluate() วิธีการเลือกข้อมูลเฉพาะจากโหนดที่เลือกใน C#

บางครั้งคุณอาจต้องการรับรายละเอียดเฉพาะจากโหนดแทนที่จะเป็นเนื้อหาทั้งหมด คุณสามารถทำตามขั้นตอนด้านล่างเพื่อใช้แบบสอบถาม XPath เพื่อรับข้อมูลเฉพาะจากโหนดที่เลือก

  1. เข้าถึงไฟล์ XML อินพุตโดยใช้คลาส HTMLDocument
  2. เรียกใช้เมธอด Evaluate เพื่อรับโหนดที่ตรงกับนิพจน์ XPath
  3. วนซ้ำโหนดที่ตรงกันและพิมพ์เนื้อหาเฉพาะจากแต่ละโหนด

ตัวอย่างโค้ดต่อไปนี้อธิบายวิธีการเลือกข้อมูลเฉพาะจากโหนดที่เลือกใน XML โดยใช้วิธี XPath Document.Evaluate:

// สร้างตัวอย่างของเอกสาร
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // เลือกตัวแทนจำหน่ายที่ตรงกับนิพจน์ 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;

    // ทำซ้ำกับตัวแทนจำหน่ายที่เลือก
    while ((dealer = dealers.IterateNext()) != null)
    {
        // รับและพิมพ์ชื่อตัวแทนจำหน่ายและหมายเลขโทรศัพท์
        var dealerInfo = doc.Evaluate("concat('Dealer name: ', Name, ' Telephone: ', Telephone)", dealer, doc.CreateNSResolver(doc), XPathResultType.String, null);
        Console.WriteLine(dealerInfo.StringValue);

        // เลือกและพิมพ์ CarID ที่ตรงกับนิพจน์ 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);
        }
    }
}

ใช้ XPath เพื่อเลือกโหนดใน C# - อ่านเพิ่มเติม

คุณสามารถเรียนรู้รายละเอียดเพิ่มเติมเกี่ยวกับการทำงานกับ XPath Query ได้โดยไปที่หัวข้อต่อไปนี้ในส่วน เอกสารประกอบ

XPath Query เพื่อเลือกโหนดจาก HTML หรือ XML ใน C# - ใบอนุญาตการประเมินฟรี

คุณสามารถทดสอบคุณสมบัติ API ได้เต็มประสิทธิภาพโดยไม่มีข้อจำกัดใดๆ โดยขอ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีใช้ XPath Query Document วิธีการประเมินเพื่อเลือกโหนดเฉพาะหรือเนื้อหาเฉพาะของโหนดที่เลือกซึ่งตรงกับนิพจน์ XPath อย่างไรก็ตาม ในกรณีที่คุณต้องการหารือเกี่ยวกับข้อกังวลใดๆ โปรดติดต่อเราที่ ฟอรัมสนับสนุนฟรี

ดูสิ่งนี้ด้วย

ใช้ตัวเลือก CSS ใน HTML โดยใช้ C#