簡體   English   中英

XML錯誤:有多個根元素,如何在asp.net c#中讀取XML字符串變量?

[英]XML Error: There are multiple root elements ,how to read XML string variable in asp.net c#?

我正在使用Visual Studio 2012 asp.net c#。 我無法讀取XML字符串變量“ j”。 請幫忙。 我想讀取字符串變量“ j”,並在標簽上顯示XML值。 請讓我知道正確的代碼。 謝謝

WeatherAPI(lbldistrict.Text + "," + "India");
XmlDocument j = WeatherAPI(lbldistrict.Text + "," + "India");
var myXml = j.DocumentElement.InnerXml.ToString();

XmlDocument doc = new XmlDocument();
doc.LoadXml(myXml); //XML Error: There are multiple root elements

XmlTextReader reader = new XmlTextReader("j");
XmlNodeType type;
while (reader.Read())
{
    type = reader.NodeType;
    if (type == XmlNodeType.Element)
    {
        if (reader.Name == "temp_C")
        {
            reader.Read();
            lbltemp.Text = reader.Value;
        }
        if (reader.Name == "windspeedKmph")
        {
            reader.Read();
            lblwind.Text = reader.Value;
        }
        if (reader.Name == "weatherIconUrl")
        {
            reader.Read();
            ImgWeather.ImageUrl = reader.Value;
        }
        if (reader.Name == "weatherDesc")
        {
            reader.Read();
            lblDec.Text = reader.Value;
        } if (reader.Name == "tempMinC")
        {
            reader.Read();
            lblLow.Text = reader.Value;
        } if (reader.Name == "tempMaxC")
        {
            reader.Read();
            lblHigh.Text = reader.Value;
        } if (reader.Name == "humidity")
        {
            reader.Read();
            lblHumidity.Text = reader.Value;
        }
    }
}

我正在從Web服務獲取XML文件。 XML文件如下所示:

   "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<data>
<request>
<type>City</type>
<query>Madhubani, India</query>
</request>
<current_condition>
<observation_time>05:56 AM</observation_time>
<temp_C>30</temp_C>
<temp_F>87</temp_F>
<weatherCode>353</weatherCode>
<weatherIconUrl>
<![CDATA[http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0009_light_rain_showers.png]]>
</weatherIconUrl>
<weatherDesc><![CDATA[Light rain shower]]></weatherDesc>
<windspeedMiles>8</windspeedMiles>
<windspeedKmph>13</windspeedKmph>
<winddirDegree>110</winddirDegree>
<winddir16Point>ESE</winddir16Point>
<precipMM>0.2</precipMM>
<humidity>84</humidity>
<visibility>10</visibility>
<pressure>1005</pressure>
<cloudcover>70</cloudcover>
</current_condition>
<weather>
<date>2014-09-20</date>
<tempMaxC>33</tempMaxC>
<tempMaxF>91</tempMaxF>
<tempMinC>25</tempMinC>
<tempMinF>77</tempMinF>
<windspeedMiles>9</windspeedMiles>
<windspeedKmph>15</windspeedKmph>
<winddirection>ESE</winddirection>
<winddir16Point>ESE</winddir16Point>
<winddirDegree>124</winddirDegree>
<weatherCode>353</weatherCode>
<weatherIconUrl><![CDATA[http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0009_light_rain_showers.png]]>
</weatherIconUrl>
<weatherDesc><![CDATA[Light rain shower]]></weatherDesc>
<precipMM>3.6</precipMM>
</weather></data>"

等等

InnerXml不包含DocumentElement本身,因此看起來您在XML文檔樹中有多個根,因此,它不是XML文檔。 這可能起作用:

var myXml = j.DocumentElement.InnerXml.ParentNode.ToString();

或者,您可以將結果XML視為一組元素節點。

暫無
暫無

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

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