XPath สามารถใช้เพื่อค้นหาโหนดเฉพาะที่ตรงกับเกณฑ์ที่กำหนดในนิพจน์ XPath คุณสามารถใช้แบบสอบถาม XPath เพื่อนำทางผ่านเอกสาร XML หรือ HTML ดังนั้น บทความนี้จะอธิบายวิธีใช้ XPath เพื่อเลือกโหนดเฉพาะตามความต้องการของคุณ
- ทำงานกับ XPath เพื่อเลือกโหนดจากไฟล์ XML หรือ HTML - การติดตั้ง C# API
- ใช้ XPath Document.Evaluate() วิธีการรับรูปภาพจากเว็บเพจ HTML ใน C#
- ใช้ XPath Document.Evaluate() วิธีการเลือกโหนดจากไฟล์ XML ใน C#
- ใช้ XPath Document.Evaluate() วิธีการเลือกข้อมูลเฉพาะจากโหนดที่เลือกใน C#
ทำงานกับ 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 โปรดปฏิบัติตามขั้นตอนด้านล่างเพื่อดำเนินการตามขั้นตอนนี้:
- เริ่มต้นวัตถุของคลาส HTMLDocument เพื่อโหลดไฟล์ต้นฉบับ
- ส่งนิพจน์ XPath และพารามิเตอร์อื่นๆ ไปยังเมธอด Evaluate
- ทำซ้ำผ่านโหนดที่เลือกและรับลิงก์สำหรับแต่ละภาพ
ตัวอย่างโค้ดต่อไปนี้สาธิตวิธีการใช้ 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 ขั้นตอนต่อไปนี้จะอธิบายวิธีปฏิบัติตามข้อกำหนดดังกล่าว:
- โหลดไฟล์ XML ต้นฉบับด้วยคลาส HTMLDocument
- เรียกใช้เมธอด Evaluate ขณะที่ส่งนิพจน์ XPath และพารามิเตอร์อื่นๆ
- ทำซ้ำบนโหนดที่เลือกและพิมพ์เนื้อหาทั้งหมดของโหนดที่เลือก
ข้อมูลโค้ดด้านล่างแสดงวิธีใช้ 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 เพื่อรับข้อมูลเฉพาะจากโหนดที่เลือก
- เข้าถึงไฟล์ XML อินพุตโดยใช้คลาส HTMLDocument
- เรียกใช้เมธอด Evaluate เพื่อรับโหนดที่ตรงกับนิพจน์ XPath
- วนซ้ำโหนดที่ตรงกันและพิมพ์เนื้อหาเฉพาะจากแต่ละโหนด
ตัวอย่างโค้ดต่อไปนี้อธิบายวิธีการเลือกข้อมูลเฉพาะจากโหนดที่เลือกใน 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 อย่างไรก็ตาม ในกรณีที่คุณต้องการหารือเกี่ยวกับข้อกังวลใดๆ โปรดติดต่อเราที่ ฟอรัมสนับสนุนฟรี