Vac*_*ano 3 .net c# xml xml-namespaces
我有以下示例XML文件:
<Top xmlns="abbr:SomeNSValue">
<Next>
<Other>SomeValue</Other>
</Next>
</Top>
Run Code Online (Sandbox Code Playgroud)
我加载它并试着像这样读取它:
FileStream stream = new FileStream(@".\TestXML.xml", FileMode.Open);
XPathDocument xPathDocument = new XPathDocument(stream);
XPathNavigator navigator = xPathDocument.CreateNavigator();
XmlNamespaceManager ns = null;
if (navigator.NameTable != null)
{
ns = new XmlNamespaceManager(navigator.NameTable);
ns.AddNamespace("abbr", "SomeNSValue");
}
XPathNodeIterator iterator = navigator.Select("/Top/Next", ns);
iterator.MoveNext();
Console.WriteLine(iterator.Current.InnerXml);
Run Code Online (Sandbox Code Playgroud)
这将输出上面显示的完整XML.不是我想要的(我想选择"下一步"节点的内容.
但是,如果我xmlns="abbr:SomeNSValue从XML中取出并再试一次,那么我得到了我想要的东西:
<Other>SomeValue</Other>
Run Code Online (Sandbox Code Playgroud)
在我的真实场景中,我将XML提供给我,我宁愿不必修改它以关闭命名空间.
有没有办法让它可以使用命名空间?
注意:重要的是,这是我在XML文件中的实际命名空间:xmlns="urn:hl7-org:v2xml"
你的命名空间声明错误:
<Top xmlns:abbr="SomeNSValue">
<Next>
<Other>SomeValue</Other>
</Next>
</Top>
Run Code Online (Sandbox Code Playgroud)
当你做这个神奇的改变代码的其余部分工作:) ..
| 归档时间: |
|
| 查看次数: |
4779 次 |
| 最近记录: |