【发布时间】:2019-08-02 08:08:52
【问题描述】:
我有两个 xmlns 属性,我尝试 xpath 一个节点,但它不起作用
我正在使用 XmlDocument 并且我正在尝试从该 xml 进行 xpath 。它返回 null 因为根节点有两个 xml 属性。
<CreateRequest
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://fex.com/ws/openship/v15">
<WebAuthenticationDetail>
<Parent>
<Key/>
<Password />
</Parent>
<UserCredential>
<Key />
<Password />
</UserCredential>
</WebAuthenticationDetail>
<ClientDetail>
<AccountNumber />
<MeterNumber />
</ClientDetail>
</CreateRequest>
var nsmgr = new XmlNamespaceManager(xml.NameTable);
nsmgr.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
var
nodes=xml.SelectNodes("/CreateRequest/ClientDetail/AccountNumber",nsmgr);
【问题讨论】:
-
您不需要关心前缀为
xsi的命名空间 - 只需将默认命名空间http://fex.com/ws/openship/v15添加到您的 XmlNamespaceManager。 -
谢谢@Filburt。我试图将 xsd 转换为 xml ,然后像这样生成:xmlns="fedex.com/ws/openship/v15",有没有办法使用 XmlNamespaceManager 来处理这个问题?
标签: c# asp.net xml xmldocument