Tôi đang cố gắng sử dụng System.Xml.Linq
để tạo tài liệu XHTML. Như vậy, đại đa số các nút trong cây của tôi phải sử dụng namespace này:Cách tạo XElement với không gian tên mặc định cho trẻ em mà không sử dụng XNamespace trong tất cả các nút con
http://www.w3.org/1999/xhtml
tôi có thể tạo XElement
nút scoped tới namespace này một cách dễ dàng đủ, sử dụng một XNamespace
, như thế này:
XNamespace xhtml = "http://www.w3.org/1999/xhtml";
// ...
new XElement(xhtml + "html", // ...
Tuy nhiên, tôi không muốn phải cung cấp XNamespace
có sẵn trong tất cả các mã tạo nút HTML và phải đặt trước mỗi tên XElement
(và XAttribute
) duy nhất mà tôi tạo cho phù hợp.
Định dạng văn bản XML tự nó đưa ra yêu cầu này và cho phép đặt không gian tên mặc định trong tổ tiên được thừa kế bởi hậu duệ, sử dụng thuộc tính reserved xmlns
. Tôi muốn làm điều gì đó tương tự bằng cách sử dụng System.Xml.Linq
.
Điều này có khả thi không?
Giải pháp này trông nặng và đáng sợ, nhưng nó thực sự đẹp, nhẹ, có thể mở rộng, làm cho mã của bạn ngắn hơn và bảo vệ chống lại lỗi chính tả trong tên phần tử hoặc thuộc tính. Wow! –
Tôi chỉ hiểu tại sao nó có tất cả những ưu điểm này. Trong khi câu hỏi chỉ nói "Tôi muốn các không gian tên tự động", điều đơn giản và lành mạnh là "Tôi muốn một số phím tắt tiện lợi đóng gói một số kiến thức cơ bản về HTML", trong đó hiệu ứng không gian tên chỉ là một sản phẩm phụ tốt. –