我有以下 xml:
<messageContent xmlns="http://tempuri.org/" >
<Message type="MappedMessage" >
<Properties RequestId="Point-CurveRequest-8326ad44-a1cd-4a96-b4ef-1c4ad213d940" Action="getParCurves" EESId="EESID:NY:20100128:BASE" Currency="USD" Index="INX" />
<Body></Body>
</Message>
</messageContent>
然后我有这个查询:
var messageType = xmlDoc.SelectSingleNode("/messageContent/Message[@type]");
但无论我尝试了什么,我都无法获得我正在寻找的节点。基本上我只是想看看是否有一个节点(名为“消息”)在它里面有一个“类型”属性。
有人知道吗?
最佳答案
您的 XML 绝对没有问题 - 但是您的 XPath 表达式有问题:-)
将 XML 命名空间管理器添加到您的代码中:
XmlNamespaceManager mgr = new XmlNamespaceManager(xdoc.NameTable);
mgr.AddNamespace("ns", "http://tempuri.org/");
然后在执行
SelectSingleNode
时使用该 namespace 管理器:var messageType = xdoc.SelectSingleNode("/ns:messageContent/ns:Message[@type]", mgr);
那应该行得通。
关于xml - 我的xml有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2165867/