You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用XDocument处理xi:include?原XInclude.net已不可用

用XDocument处理XInclude的方案

XDocument本身并没有原生集成XInclude(xi:include)的处理功能,不过可以借助.NET框架里的XmlReader来实现XInclude的解析,再将结果转换为XDocument。

实现步骤

  • 配置XmlReaderSettings,启用XInclude支持
  • 使用配置好的XmlReader加载包含xi:include的XML文件/内容
  • 将XmlReader读取的内容转换为XDocument

代码示例

using System.Xml;
using System.Xml.Linq;

// 配置XmlReaderSettings
var settings = new XmlReaderSettings
{
    EnableXInclude = true,
    DtdProcessing = DtdProcessing.Parse // 若引用的XML包含DTD,需设置此项
};

// 加载目标XML文件(也可加载字符串形式的XML内容)
using var reader = XmlReader.Create("your-document.xml", settings);
XDocument doc = XDocument.Load(reader);

// doc即为解析完xi:include后的完整文档
Console.WriteLine(doc.ToString());

注意事项

  • 确认xi:include的href路径有效性:相对路径以当前XML文件所在目录为基准,绝对路径直接生效。
  • 处理命名空间:确保主文档与引用文档的命名空间无冲突,避免解析后出现结构异常。
  • 远程引用处理:若需加载远程URL的XML资源,默认XmlUrlResolver支持HTTP/HTTPS,但需注意对应权限配置。

替代方案

如果原生方案无法满足复杂需求,可考虑使用维护中的第三方库(如NuGet上的DotNetXmlXInclude),但优先推荐原生XmlReader方案,减少第三方依赖。

内容的提问来源于stack exchange,提问作者MrD at KookerellaLtd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 07:23:13