簡體   English   中英

在Asp.net中讀取XML沒有得到任何結果

[英]Reading XML in Asp.net not getting any results

我使用以下代碼從此地址讀取XML文件。

        XmlDocument xdoc = new XmlDocument();
        xdoc.Load("https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");

        XmlNodeList nodeList = xdoc.DocumentElement.SelectNodes("//gesmes/Cube/Cube");

        if (nodeList == null) lblOutput.Text = "node is null";

        foreach (XmlNode node in nodeList)
        {
            XmlNode innerNode = node.SelectSingleNode(".//Cube");

            lblOutput.Text = innerNode.Attributes["currency"].Value;
        }

問題是我沒有得到任何東西。 nodeList.Count總是給我0

您需要正確處理命名空間。 可能有多種方法可以處理它們,這是一種方法

XmlDocument xdoc = new XmlDocument();
        xdoc.Load("https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");
        XmlNamespaceManager xnm = new XmlNamespaceManager(xdoc.NameTable);
        xnm.AddNamespace("gesmes", "http://www.gesmes.org/xml/2002-08-01");
        xnm.AddNamespace("eurofxref", "http://www.ecb.int/vocabulary/2002-08-01/eurofxref");

        XmlNodeList nodeList = xdoc.DocumentElement.SelectNodes("//gesmes:Envelope/eurofxref:Cube/eurofxref:Cube", xnm);

        if (nodeList == null)
        { 
            var text = "node is null";
        }
        foreach (XmlNode node in nodeList)
        {
            XmlNode innerNode = node.SelectSingleNode(".//eurofxref:Cube", xnm);

            var text = innerNode.Attributes["currency"].Value;
        }

我不知道為什么它必須這么復雜但......

XmlDocument xdoc = new XmlDocument();

xdoc.Load("https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");

XmlNamespaceManager xMan = new XmlNamespaceManager(xdoc.NameTable);

xMan.AddNamespace("def", "http://www.ecb.int/vocabulary/2002-08-01/eurofxref");

XmlNodeList nodeList = xdoc.DocumentElement.SelectNodes("//def:Cube", xMan);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM