我正在尝试使用System.Xml.Linq
来创建XHTML文档。因此,我的树中绝大部分节点都应该使用这个命名空间:
http://www.w3.org/1999/xhtml
我可以很容易地使用 XNamespace
创建限定于该命名空间的 XElement
节点,就像这样:
XNamespace xhtml = "http://www.w3.org/1999/xhtml";
// ...
new XElement(xhtml + "html", // ...
然而,我不想在创建 HTML 节点的所有代码中都要使用
XNamespace
,并且必须相应地为我创建的每个单独的 XElement
(和 XAttribute
)名称添加前缀。XML 文本格式本身考虑了这个要求,并允许在祖先中设置默认命名空间,该命名空间由后代继承,使用保留的
xmlns
属性。我想使用 System.Xml.Linq
做类似的事情。这是可能的吗?