ทดสอบนิพจน์ XPath ออนไลน์

ใช้ XPath Tester เพื่อค้นหาโหนดในหน้าเว็บสาธารณะด้วยนิพจน์ XPath ป้อน URL และนิพจน์ เช่น //img, //main//a หรือ //*[@data-id] เครื่องมือจะแสดงโหนดที่ตรงกันและสร้างโค้ด C# สำหรับคิวรีเดียวกัน

  1. ป้อน URL ของหน้าเว็บที่ต้องการตรวจสอบ
  2. ป้อนนิพจน์ XPath ที่ระบุโหนดที่ต้องการ
  3. คลิก Find ตรวจสอบผลลัพธ์ และคัดลอกผลลัพธ์หรือโค้ด C# ที่สร้างขึ้น


ประเมินคิวรี XPath กับ HTML ใน C#

Aspose.HTML for .NET ประเมินนิพจน์ XPath กับ DOM ของเอกสาร ตัวอย่างนี้โหลด URL ที่แสดงในวิดเจ็ต เรียก Evaluate() และประมวลผล IXPathResult ที่ส่งคืน เมื่อเปลี่ยน URL หรือนิพจน์ในวิดเจ็ต ตัวอย่าง C# ที่เรนเดอร์บนเซิร์ฟเวอร์นี้จะอัปเดตโดยอัตโนมัติ โหนดบริบทกำหนดจุดเริ่มต้นของการประเมิน ส่วน XPathResultType กำหนดชนิดผลลัพธ์ที่ต้องการ

คิวรี XPath ใน C#

using System;
using Aspose.Html;
using Aspose.Html.Dom;
using Aspose.Html.Dom.XPath;

// Create an HTML document
string url = "https://www.aspose.com/";
using HTMLDocument document = new HTMLDocument(url);

// Evaluate the XPath expression
IXPathResult result = document.Evaluate("//a", document, null, XPathResultType.Any, null);

// Process the XPath result
switch (result.ResultType)
{
    case XPathResultType.Number:
        Console.WriteLine(result.NumberValue);
        break;
    case XPathResultType.String:
        Console.WriteLine(result.StringValue);
        break;
    case XPathResultType.Boolean:
        Console.WriteLine(result.BooleanValue);
        break;
    default:
        Node node;
        while ((node = result.IterateNext()) != null)
        {
            if (node is Element element)
            {
                Console.WriteLine(element.OuterHTML);
            }
            else
            {
                Console.WriteLine(node.TextContent);
            }
        }
        break;
}

รูปแบบคิวรี XPath ที่ใช้บ่อย

XPath สามารถเลือกองค์ประกอบตามชื่อ แอตทริบิวต์ ตำแหน่ง ลำดับชั้น หรือเนื้อหาข้อความ

  • //img เลือกองค์ประกอบ <img> ทั้งหมดในเอกสาร
  • //main//a เลือกลิงก์ทุกระดับภายใน <main>
  • //*[@data-id] เลือกองค์ประกอบที่มีแอตทริบิวต์ data-id
  • //ul/li[1] เลือกลูก <li> ตัวแรกของแต่ละ <ul>
  • //p[contains(normalize-space(.), 'price')] เลือกย่อหน้าที่ข้อความหลังปรับรูปแบบมีคำว่า price

สำหรับคิวรี class, ID, แอตทริบิวต์ หรือองค์ประกอบที่กระชับและไม่ต้องใช้เงื่อนไขข้อความหรือแกน XPath CSS Selector Tester มักอ่านง่ายกว่า


ใช้ XPath API ใน C#

  1. สร้าง HTMLDocument จากไฟล์ HTML ในเครื่องหรือ URL
  2. กำหนดนิพจน์ XPath และเลือกโหนดบริบทที่เหมาะสม
  3. เรียก Evaluate() พร้อมนิพจน์ บริบท ตัวแก้ชื่อ Namespace เมื่อจำเป็น และ XPathResultType ที่คาดไว้
  4. อ่านค่าที่ส่งคืนหรือวนผ่านโหนดที่ตรงกันด้วย IterateNext()

เมื่อนิพจน์ใช้คำนำหน้า Namespace ให้ระบุตัวแก้ที่แมปคำนำหน้าเหล่านั้นกับ URI ของ Namespace สำหรับคิวรี HTML ทั่วไปที่ไม่มีคำนำหน้า สามารถกำหนดตัวแก้เป็น null


เอกสาร XPath และ API Reference

ใช้แหล่งข้อมูลต่อไปนี้สำหรับการประเมิน XPath การนำทาง HTML และตัวอย่างเฉพาะสำหรับ XML

  • How to Use XPath in HTML อธิบายพารามิเตอร์ของ Evaluate() และวิธีเลือกโหนดใน C#
  • HTML Navigation in C# เปรียบเทียบ XPath, CSS Selector และการนำทาง DOM โดยตรง
  • Select XML Nodes with XPath ครอบคลุมคิวรี XPath กับเอกสาร XML

ติดตั้ง Aspose.HTML for .NET

ติดตั้ง Aspose.HTML for .NET จาก NuGet ด้วย .NET CLI:

dotnet add package Aspose.HTML

คุณยังสามารถใช้หน้าต่าง NuGet Package Manager หรือเรียกใช้ Install-Package Aspose.HTML ใน Package Manager Console ได้ ดูรายละเอียดการตั้งค่าใน คู่มือการติดตั้ง หรือขอ ใบอนุญาตชั่วคราว เพื่อประเมิน API โดยไม่มีข้อจำกัดของเวอร์ชันทดลอง


คำถามที่พบบ่อย

1. นิพจน์ XPath คืออะไร?

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

2. XPath ใช้คิวรีได้ทั้ง HTML และ XML หรือไม่?

ได้ XPath ทำงานกับโครงสร้าง DOM และเลือกโหนดในเอกสาร HTML หรือ XML ได้ เครื่องมือออนไลน์ออกแบบมาสำหรับหน้าเว็บ HTML สาธารณะ หากต้องจัดการ Namespace หรือโหลด XML โดยเฉพาะ ให้ใช้เวิร์กโฟลว์ XML ใน C# ตามเอกสาร

3. เหตุใดนิพจน์ XPath จึงไม่ส่งคืนโหนด?

ตรวจสอบชื่อโหนด Predicate โหนดบริบท และโครงสร้างเอกสารที่โหลด สำหรับ XML หรือเนื้อหาที่มี Namespace ต้องระบุตัวแก้ Namespace ที่แมปทุกคำนำหน้าในนิพจน์ด้วย

4. ควรใช้ XPath แทน CSS Selector เมื่อใด?

ใช้ XPath เมื่อคิวรีต้องจับคู่ข้อความ ไปยังโหนดบรรพบุรุษหรือโหนดพี่น้อง หรือใช้ Predicate ที่เขียนด้วย CSS ได้ยาก ใช้ CSS Selector สำหรับคิวรี class, ID, แอตทริบิวต์ และองค์ประกอบสืบทอดทั่วไป

เวิร์กโฟลว์ที่เกี่ยวข้องสำหรับการเลือกและแก้ไข HTML

ทำงานต่อด้วย CSS Selector การแก้ไข DOM การแยกข้อมูลตาราง หรือการแยกรูปภาพใน C#