【发布时间】:2018-01-05 12:00:15
【问题描述】:
我有一些 xml,我想使用 xpath(使用 C#)选择密码节点
<?xml version='1.0' encoding='utf-16'?>
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
<s:Body>
<Search xmlns='https://temp.org'>
<context>
<Password>MyS3cretP@ssword</Password>
<UserID>MyUserId</UserID>
</context>
</Search>
</s:Body>
</s:Envelope>
下面的代码没有找到节点,不知道为什么。我认为这与一些具有定义命名空间的 xml 和一些使用默认命名空间有关。
var doc = new XmlDocument();
doc.LoadXml(request);
var nsMgr = new XmlNamespaceManager(doc.NameTable);
nsMgr.AddNamespace("s", "http://schemas.xmlsoap.org/soap/envelope/");
var node = doc.SelectSingleNode("/s:Envelope/s:Body/Search/context/Password", nsmgr);
在不更改 xml 内容的情况下如何选择 Password 节点?
【问题讨论】: