0

我正在尝试解析以下 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 来解析此文档?

4

1 回答 1

0

您的 xml 已声明命名空间。解析节点时应该考虑它。我建议你使用 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
于 2013-07-15T14:53:31.543 回答