XmlReader无法用<qn:xxxxx>格式解析XML?</qn:xxxxx>

时间:2013-07-15 14:48:55

标签: c# xmlreader

我正在尝试解析以下xml字符串:

<qn:QueryNotification xmlns:qn="http://schemas.microsoft.com/SQL/Notifications/QueryNotification" id="307" type="change" source="data" info="insert" database_id="6" sid="0x010500000000000515000000AEA63BDE2DE94B9FF38541A8CD1A0000">
  <qn:Message>Custom</qn:Message>
</qn:QueryNotification>

我正在以下列方式使用XmlReader:

using (XmlReader xmlReader = XmlReader.Create(new StringReader(z)))
{
     xmlReader.Read();
}

执行Read()时,我得到以下异常:

  

XmlException:根级别的数据无效。第1行,第40位。

我不认为它喜欢qn:在每个标签之前。如何设置XmlReader来解析此文档?

1 个答案:

答案 0 :(得分:0)

你的xml有命名空间daclared。在解析节点时应该考虑它。我建议你使用Linq to XML:

XNamespace qn = "http://schemas.microsoft.com/SQL/Notifications/QueryNotification";
XElement notification = XElement.Parse(z);
var message = (string)notification.Element(qn + "Message"); // Custom