我正在尝试加载以下XML值
<?xml version="1.0" standalone="yes"?>
<Data>
<curmsg>
<event> myevent </event>
<clientid> 123456 </clientid>
<appid> 1123456 </appid>
<timestamp> December 13 2016 00:00:00 </timestamp>
<clientname> TEST ACCOUNT </clientname>
<accountnum> 123 </accountnum>
</backlink>
<key>AAAAC</key>
<fileid>1234</fileid>
<filename>LKTEST1.1</filename>
<filesize>30</filesize>
<eekey>LKTEST</eekey>
<pjobid>DFSAQE3Z4</pjobid>
<filecategory>Proceed</filecategory>
</curmsg>
</Data>
C#代码:
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(xmldata);
上述LoadXml
函数抛出异常,因为<backlink>
标记只有结束标记。它在我提供起始标记时工作,但我的要求是当标记没有起始标记(空值)时我想加载XML。
答案 0 :(得分:2)
你做不到。
为什么呢?因为</backlink>
不是空标记。这只是一个语法错误。 <backlink/>
是一个空标记。
您可能想要使用正确的XML文件。
答案 1 :(得分:1)
这是无效的XML,没有内置的XML工具可以读取它。
您的选择:
string.Replace
替换损坏的节点,然后将其作为XML加载(hacky,稍后当文本文件的作者在那里引入更多无效的XML时可能会破坏)。