如何在XDocument上设置命名空间

时间:2016-05-19 05:12:17

标签: c# linq-to-xml

我需要获取xml文件。但是xml的基本名称空间是前缀m:

这是我的代码,但它不起作用,编写NullRefference exeptions:

var fileКс = XDocument.Load(somePath);
        var allDescrioptions = fileКс.Root.Element("formulas").Elements("formula").ToList();

这是xml文件的一部分:

    <?xml version="1.0" encoding="utf-8" ?>
<m:math xmlns:m="http://www.kontur-extern.ru/ФНС 4.0/math.xsd">
    <m:formulas>
        <m:formula target="@ПрибУб" match="/Файл/Документ/Прибыль/РасчНал" source="Лист 02/стр.060">
        </m:formula>
</m:formulas>
</m:math>

我认为需要指定命名空间,但我不知道如何

1 个答案:

答案 0 :(得分:2)

您可以使用XNamespace,如下所示:

XNamespace m = "http://www.kontur-extern.ru/ФНС 4.0/math.xsd";
var fileКс = XDocument.Load(somePath);
var allDescrioptions = fileКс.Root.Element(m+"formulas").Elements(m+"formula").ToList();