阅读 XML 篇内容
Read XML content
假设我有一个 XML 比如:
<current>
<city id="2563232" name="London">
<coord lon="-0.13" lat="51.51">
<country>GB</country>
<sun rise="2017-08-17T04:23:00" set="2017-08-17T17:48:39"/>
</city>
<temperature value="305.15" min="305.15" max="305.15" unit="kelvin"/>
<humidity value="25" unit="%"/>
<pressure value="1015" unit="hPa"/>
<wind>...</wind>
<clouds value="0" name="clear sky"/>
<visibility value="10000"/>
</current>
我可以在我的变量 "test" 中看到 City 和 Wind 的信息,当我想调试的时候,但我得到的是空白。我的代码是:
XmlNodeList xnlNodes = OtherClass.retrieveXMLResponse(respStream);
String test = "";
foreach (XmlNode xndNode in xnlNodes)
{
test = xndNode["city"].InnerXml;
test = xndNode["wind"].InnerXml;
test = xndNode["temperature"].InnerXml;
test = xndNode["humidity"].InnerXml;
test = xndNode["pressure"].InnerXml;
test = xndNode["clouds"].InnerXml;
test = xndNode["visibility"].InnerXml;
}
我稍后会用一个对象替换 "test"。这是检索XML响应方法:
public static XmlNodeList retrieveXMLResponse(Stream stream)
{
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
string responseString = reader.ReadToEnd();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(responseString);
XmlElement xelRoot = xmlDoc.DocumentElement;
XmlNodeList xnlNodes = xelRoot.SelectNodes("/current");
return xnlNodes;
}
只包含属性的节点上没有内XML,因此内XML属性为空。如果您想读取给定节点的属性值,每个 XML 节点都有一个 attributes 属性。
假设我有一个 XML 比如:
<current>
<city id="2563232" name="London">
<coord lon="-0.13" lat="51.51">
<country>GB</country>
<sun rise="2017-08-17T04:23:00" set="2017-08-17T17:48:39"/>
</city>
<temperature value="305.15" min="305.15" max="305.15" unit="kelvin"/>
<humidity value="25" unit="%"/>
<pressure value="1015" unit="hPa"/>
<wind>...</wind>
<clouds value="0" name="clear sky"/>
<visibility value="10000"/>
</current>
我可以在我的变量 "test" 中看到 City 和 Wind 的信息,当我想调试的时候,但我得到的是空白。我的代码是:
XmlNodeList xnlNodes = OtherClass.retrieveXMLResponse(respStream);
String test = "";
foreach (XmlNode xndNode in xnlNodes)
{
test = xndNode["city"].InnerXml;
test = xndNode["wind"].InnerXml;
test = xndNode["temperature"].InnerXml;
test = xndNode["humidity"].InnerXml;
test = xndNode["pressure"].InnerXml;
test = xndNode["clouds"].InnerXml;
test = xndNode["visibility"].InnerXml;
}
我稍后会用一个对象替换 "test"。这是检索XML响应方法:
public static XmlNodeList retrieveXMLResponse(Stream stream)
{
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
string responseString = reader.ReadToEnd();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(responseString);
XmlElement xelRoot = xmlDoc.DocumentElement;
XmlNodeList xnlNodes = xelRoot.SelectNodes("/current");
return xnlNodes;
}
只包含属性的节点上没有内XML,因此内XML属性为空。如果您想读取给定节点的属性值,每个 XML 节点都有一个 attributes 属性。