xml - 我的xml有什么问题?

标签 xml xpath

我有以下 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/

相关文章:

xml - 协助在多个元素之间进行 XML XSD 选择

java - 使用 webdriver 查找元素时如何在 xpath 中使用撇号 (')?

mysql - mule xpath 提取值 mysql

xml - XSL1.0 : How to parse only text content of a tag under a certain condition

java - 无法在弹出的新窗口中访问框架内的网络元素

xml - xpath 仅获取初步节点

java - 使用 JAXB marshal 添加/修改 XML 文件中的元素

c# - XmlSerializer - 包含文本 + xml + 文本的节点

android - 如何更改微调器中的文本颜色?

SQL where 字段如 ■