使用Linq读取XML文档

Bor*_*ris 5 .net c# xml linq

我想使用以下代码阅读XML文档:

XDocument xdoc = XDocument.Load(fileName);
Run Code Online (Sandbox Code Playgroud)

这不起作用,抛出以下异常(由我自由翻译):

System.Xml.XmlException:'xlink'是未声明的前缀.

这是异常引用的XML行:

<use xlink:href="#lend13" transform="scale(-8.5,-8.5) "/>
Run Code Online (Sandbox Code Playgroud)

如何修改加载代码,以便成功读取XML文档?我是否必须事先设置名称空间?怎么样?

n00*_*00b 2

如果您可以编辑 Xml,则可以通过为其定义命名空间来修复

<use xlink:href="#lend13" transform="scale(-8.5,-8.5) 
xmlns:xlink="http://myurl.com/" />
Run Code Online (Sandbox Code Playgroud)

否则,您可以在使用 XmlDocument 时预定义命名空间

XmlDocument.DocumentElement.SetAttribute("xmlns:xlink", "http://myurl.com/");
Run Code Online (Sandbox Code Playgroud)

在 linq to XML 中,您可以使用 XNamesace 定义属性

XNamespace ns = "http://myurl.com/";
Run Code Online (Sandbox Code Playgroud)