โหลด HTML ด้วย Aspose.HTML for .NET
Aspose.HTML for .NET โหลด HTML ลงใน HTMLDocument ซึ่งเป็นโครงสร้างเอกสารในหน่วยความจำสำหรับการค้นหา DOM แก้ไขเนื้อหา แยกข้อมูล บันทึก และแปลง คอนสตรัคเตอร์ HTMLDocument รองรับพาธในเครื่อง URL ระยะไกล สตริงมาร์กอัป หรือสตรีม แอปพลิเคชันจึงเลือกแหล่งข้อมูลที่ตรงกับเวิร์กโฟลว์ได้
โหลดไฟล์ HTML ใน C#
ส่งพาธไฟล์ในเครื่องไปยังคอนสตรัคเตอร์ HTMLDocument เมื่อโหลดเสร็จ เอกสารจะเปิดให้เข้าถึง DOM ที่แยกวิเคราะห์แล้ว ตัวอย่างนี้เปิด input.html และอ่านมาร์กอัปทั้งหมดขององค์ประกอบเอกสารผ่าน
OuterHTML
โค้ด C# สำหรับโหลดเอกสาร HTML จากไฟล์
using System;
using Aspose.Html;
using HTMLDocument document = new HTMLDocument("input.html");
string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);
เลือกแหล่ง HTML และคอนสตรัคเตอร์
- ไฟล์ในเครื่อง ส่งพาธไฟล์เมื่อ HTML อยู่บนดิสก์แล้วและต้องแก้ไขทรัพยากรสัมพัทธ์จากตำแหน่งเอกสาร
- URL ระยะไกล ส่งที่อยู่ HTTP หรือ HTTPS เมื่อแอปพลิเคชันต้องโหลดเว็บเพจและทรัพยากรภายนอกที่อนุญาต
- สตริงมาร์กอัป ส่งโค้ด HTML พร้อม URL ฐานเมื่อมีมาร์กอัปอยู่ในหน่วยความจำแล้ว
- สตรีม ส่งสตรีมที่อ่านได้พร้อม URL ฐานเมื่อ HTML มาจากการอัปโหลด เนื้อหาการตอบกลับ ฐานข้อมูล หรือแหล่งข้อมูลในหน่วยความจำอื่น
โหลด HTML จาก URL ใน C#
คอนสตรัคเตอร์ที่รับที่อยู่เดียวสามารถเปิดเว็บเพจระยะไกลได้ การโหลดผ่าน URL ยังประมวลผลทรัพยากรภายนอกที่เข้าถึงได้และได้รับอนุญาตจากการกำหนดค่าสภาพแวดล้อม หลังจากโหลดแล้ว ให้ใช้พร็อพเพอร์ตีและเมธอด DOM เพื่อตรวจสอบหรือแก้ไขเอกสาร
โค้ด C# สำหรับโหลดเอกสาร HTML จาก URL
using System;
using Aspose.Html;
using HTMLDocument document =
new HTMLDocument("https://docs.aspose.com/html/net/creating-a-document/");
string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);
โหลด HTML จากสตริงใน C#
ใช้คอนสตรัคเตอร์แบบสองอาร์กิวเมนต์เมื่อแอปพลิเคชันมีมาร์กอัป HTML ในสตริงอยู่แล้ว อาร์กิวเมนต์ที่สองคือ URL ฐานสำหรับแก้ไขรูปภาพ สไตล์ชีต สคริปต์ ฟอนต์ และลิงก์สัมพัทธ์ ตัวอย่างแบบจบในตัวใช้ "." แทนไดเรกทอรีปัจจุบัน หากมาร์กอัปมีการอ้างอิงสัมพัทธ์ ให้ระบุไดเรกทอรีหรือที่อยู่เว็บจริง
โค้ด C# สำหรับสร้างเอกสาร HTML จากสตริง
using System;
using Aspose.Html;
string markup = "<p>HTML loaded from a string</p>";
// Use the current directory as the base URL
string baseUrl = ".";
using HTMLDocument document = new HTMLDocument(markup, baseUrl);
string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);
โหลด HTML จากสตรีมใน C#
คอนสตรัคเตอร์ของสตรีมจะอ่านจากตำแหน่งปัจจุบัน หากแอปพลิเคชันเพิ่งเขียน HTML ให้ฟลัช writer และตั้งตำแหน่งกลับไปที่จุดเริ่มต้นก่อนสร้างเอกสาร เปิดสตรีมไว้จนกว่า HTMLDocument จะอ่านเสร็จ ตัวอย่างใช้ "." เป็น URL ฐานกลางสำหรับไดเรกทอรีปัจจุบัน เพราะมาร์กอัปไม่มีทรัพยากรสัมพัทธ์
โค้ด C# สำหรับโหลดเอกสาร HTML จากสตรีม
using System;
using System.IO;
using System.Text;
using Aspose.Html;
using MemoryStream stream = new MemoryStream();
// Keep the stream open after disposing the writer
using (StreamWriter writer = new StreamWriter(stream, Encoding.UTF8, 1024, true))
{
writer.Write("<p>HTML loaded from a stream</p>");
writer.Flush();
}
// Reset the stream before HTMLDocument reads it
stream.Position = 0;
using HTMLDocument document =
new HTMLDocument(stream, ".");
string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);
ลักษณะการโหลด HTML และข้อควรพิจารณา
- คอนสตรัคเตอร์แยกวิเคราะห์ HTML เป็น DOM โครงสร้างผลลัพธ์เป็นไปตามกฎการแยกวิเคราะห์ HTML การทำซีเรียลไลซ์ภายหลังอาจปรับโครงสร้างหรือมาร์กอัปให้เป็นมาตรฐาน จึงไม่ควรคาดหวังสำเนาที่เหมือนต้นฉบับทุกไบต์
- URL ฐานควบคุมทรัพยากรสัมพัทธ์ อินพุตแบบสตริงและสตรีมไม่มีตำแหน่งเอกสารโดยธรรมชาติ ให้ระบุตำแหน่งสำหรับแก้ไข CSS รูปภาพ สคริปต์ ฟอนต์ และลิงก์สัมพัทธ์
- คอนสตรัคเตอร์เอกสารโหลดแบบซิงโครนัส คอนสตรัคเตอร์จะรอเอกสารและทรัพยากรภายนอกที่อนุญาต ใช้
Navigate()และอีเวนต์เอกสารเมื่อต้องการนำทางแบบอะซิงโครนัส - การโหลดระยะไกลขึ้นอยู่กับสภาพแวดล้อม ที่อยู่ไม่ถูกต้อง การเปลี่ยนเส้นทาง การตรวจสอบสิทธิ์ เครือข่ายล้มเหลว และข้อจำกัดด้านความปลอดภัยอาจทำให้โหลดเว็บเพจหรือทรัพยากรไม่ได้
- กำจัดเอกสารที่โหลดแล้ว
HTMLDocumentเก็บสถานะเอกสารและทรัพยากร การประกาศหรือบล็อก using จะปล่อยสถานะเมื่อประมวลผลเสร็จ
เอกสารและข้อมูลอ้างอิง API สำหรับการโหลด HTML
อ่าน สร้างหรือโหลดเอกสาร HTML สำหรับตัวอย่างคอนสตรัคเตอร์ คำแนะนำ URL ฐาน การนำทางแบบอะซิงโครนัส และปัญหาการโหลดทั่วไป หลังจากโหลดแล้ว ใช้คู่มือ HTML DOM เพื่อนำทางโหนด หรือ แก้ไขเอกสาร HTML เพื่อเปลี่ยนเนื้อหาและแอตทริบิวต์ สำหรับเอกสารใหม่ที่ไม่มีแหล่งข้อมูลเดิม โปรดดู สร้าง HTML ใน C#
ติดตั้ง 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 โดยไม่มีข้อจำกัดของเวอร์ชันทดลอง
คำถามที่พบบ่อยเกี่ยวกับการโหลด HTML
1. จะโหลดเอกสาร HTML ใน C# ได้อย่างไร?
ส่งพาธในเครื่องหรือ URL ไปยังคอนสตรัคเตอร์ HTMLDocument สำหรับมาร์กอัปในสตริงหรือสตรีม ให้ส่งเนื้อหาพร้อม URL ฐาน คอนสตรัคเตอร์จะแยกวิเคราะห์แหล่งข้อมูลและเปิดให้เข้าถึง HTML DOM ที่ได้
2. การโหลด HTML รักษามาร์กอัปต้นฉบับไว้อย่างถูกต้องหรือไม่?
อย่าอาศัยความเหมือนกันทุกไบต์ Aspose.HTML แยกวิเคราะห์ต้นฉบับเป็น DOM และการทำซีเรียลไลซ์ภายหลังอาจปรับองค์ประกอบโดยนัย การเข้ารหัสอักขระ ช่องว่าง หรือโครงสร้างมาร์กอัปให้เป็นมาตรฐาน โดยยังคงโมเดลเอกสารไว้
3. Aspose.HTML โหลดเว็บเพจแบบอะซิงโครนัสได้หรือไม่?
ได้ คอนสตรัคเตอร์ทำงานแบบซิงโครนัส ทำตาม
โหลด HTML แบบอะซิงโครนัส
เพื่อสร้างเอกสาร สมัครอีเวนต์อย่าง OnReadyStateChange หรือ OnLoad เรียก Navigate() และรอภายในเวลาที่แอปพลิเคชันกำหนด
4. เหตุใดเอกสาร HTML ระยะไกลจึงโหลดไม่สำเร็จ?
สาเหตุทั่วไป ได้แก่ URL ไม่ถูกต้องหรือเข้าถึงไม่ได้ การเปลี่ยนเส้นทาง ข้อกำหนดการตรวจสอบสิทธิ์ ข้อจำกัดเครือข่าย ทรัพยากรภายนอกถูกบล็อก หรือการตั้งค่าความปลอดภัย ตรวจสอบที่อยู่และกำหนดเฉพาะการเข้าถึงเครือข่ายที่จำเป็น
5. แอปพลิเคชันจำกัดทรัพยากรภายนอกขณะโหลด HTML ได้อย่างไร?
สร้างเอกสารด้วย Configuration ที่ใช้การตั้งค่าความปลอดภัยและการโหลดทรัพยากรตามต้องการ จำกัดการเข้าถึงระยะไกลไว้ที่ตำแหน่งที่เชื่อถือได้ โดยเฉพาะเมื่อ HTML หรือ URL มาจากผู้ใช้ที่ไม่น่าเชื่อถือ
เวิร์กโฟลว์เอกสาร HTML ที่เกี่ยวข้อง
ทำงานต่อด้วยการสร้าง แก้ไข เลือก หรือค้นหาเอกสารแบบมีโครงสร้าง