读取带命名空间的xml

时间:2017-02-09 16:53:33

标签: c# xml xml-namespaces

我可以读这样的xml ......

    var xml = new XmlDocument();
    xml.Load(fileName);


    var myVal = SingleElement(xml, "BOOKS/AUTHOR/NAME")

    public string SingleElement(XmlDocument xdoc, string thePath)
    {
        string value;
        try
        {
            return xdoc.SelectSingleNode(thePath).InnerText;
        }
        catch (Exception x)
        {
            value = string.Empty;
        }

        return value;
    }

但是,如果xml文件具有<ns0:BOOKS

之类的命名空间

我收到错误&#34;对象引用没有设置为对象的实例&#34;错误。我需要添加什么才能读取xml?

1 个答案:

答案 0 :(得分:0)

您可以使用XmlNamespaceManager添加名称空间。

XmlNamespaceManager namespacemgr = new XmlNamespaceManager(xdoc.NameTable);
        namespacemgr.AddNamespace("ns", "xxx");
        XmlNode node = criteria.SelectSingleNode("/ns:Books", namespacemgr );