在xsi:nil时使用XDocument加载XML

时间:2016-05-10 01:51:06

标签: c# xml

我正在尝试用c sharp中的XDocument读取这个XML文档。

  <Instrument_Root>
    <Instrument_ID>123</Instrument_ID>
    <Deal_number xsi:nil="true"/>
  </Instrument_Root>

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

   XDocument xDoc = XDocument.Load("XMLFile1.xml");

由于xsi:nil

,我收到错误消息

错误merssage:未声明System.Xml.dll“xsi”中发生未处理的“System.Xml.XmlException”类型异常。

有没有办法将xsi视为NULL?

谢谢

2 个答案:

答案 0 :(得分:1)

必须在某处将名称空间前缀xsi声明为文档要限定为XML,例如:

<Instrument_Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Instrument_ID>123</Instrument_ID>
    <Deal_number xsi:nil="true"/>
</Instrument_Root>

答案 1 :(得分:0)

您可以尝试将XML文件更改为:

<Instrument_Root  xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
    <Instrument_ID>123</Instrument_ID>
    <Deal_number xsi:nil="true"/>
</Instrument_Root>

screencapture