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