【问题标题】:How to Select XML Nodes with XML Namespaces with C#如何使用 C# 选择具有 XML 命名空间的 XML 节点
【发布时间】:2012-11-27 09:22:32
【问题描述】:

我必须使用 C# 分析具有特殊命名空间的 XML 文档,我从 this post 获得了一些想法。但是我的代码没有得到预期的 XML 节点,因为 XML 结构很特殊……

XML的根节点有命名空间

<MDOC xmlns="urn:schemas-microsoft-com/PSS/PSS_Survey01">

这是我获取此根节点的代码

        XmlDocument doc = new XmlDocument();
        doc.Load(path);

        XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
        nsmgr.AddNamespace("urn", "schemas-microsoft-com/PSS/PSS_Survey01");

        XmlNode root = doc.SelectSingleNode("MDOC", nsmgr);

帮帮我!

【问题讨论】:

    标签: c# xml namespaces


    【解决方案1】:

    我不确定您的 XML 结构有什么特别之处。

    我会稍微不同地编写代码

    string xmlNamespace = String.Empty;
    XmlNamespaceManager nsmgr;
    XmlNodeList nodeInfo = FABRequestXML.GetElementsByTagName("RootNodeName");
    xmlNamespace = Convert.ToString(nodeInfo[0].Attributes["xmlns"].Value);
    nsmgr = new XmlNamespaceManager(MyXml.NameTable);
    nsmgr.AddNamespace("AB", xmlNamespace);
    
    XmlNode myNode = MyXml.DocumentElement.SelectSingleNode("AB:NodeName", nsmgr);
    

    希望有帮助

    【讨论】:

    • 太棒了,这很好用。我的意思是特殊结构是一些具有默认命名空间的 xml 节点。我从另一篇帖子stackoverflow.com/questions/4271689/… 中对此有了深刻的理解
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 2013-11-29
    相关资源
    最近更新 更多