ทดสอบนิพจน์ XPath ออนไลน์
ใช้ XPath Tester เพื่อค้นหาโหนดในหน้าเว็บสาธารณะด้วยนิพจน์ XPath ป้อน URL และนิพจน์ เช่น //img, //main//a หรือ //*[@data-id] เครื่องมือจะแสดงโหนดที่ตรงกันและสร้างโค้ด C# สำหรับคิวรีเดียวกัน
- ป้อน URL ของหน้าเว็บที่ต้องการตรวจสอบ
- ป้อนนิพจน์ XPath ที่ระบุโหนดที่ต้องการ
- คลิก 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#
- สร้าง
HTMLDocumentจากไฟล์ HTML ในเครื่องหรือ URL - กำหนดนิพจน์ XPath และเลือกโหนดบริบทที่เหมาะสม
- เรียก
Evaluate()พร้อมนิพจน์ บริบท ตัวแก้ชื่อ Namespace เมื่อจำเป็น และXPathResultTypeที่คาดไว้ - อ่านค่าที่ส่งคืนหรือวนผ่านโหนดที่ตรงกันด้วย
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#