我返回的XML格式为
<NewDataSet>
<Table>
<CITY>Hull</CITY>
<STATE>GA</STATE>
<ZIP>30646</ZIP>
<AREA_CODE>706</AREA_CODE>
<TIME_ZONE>E</TIME_ZONE>
</Table>
</NewDataSet>
我想提取TIME_ZONE
中包含的值。此语法返回此数据System.Xml.XmlNode result
如何解析XmlNode
以查找TIME_ZONE
?
我已尝试过以下内容 - 但它给了我一个错误
无法从'System.Xml.XmlNode'转换为'string'
语法尝试
System.Xml.XmlNode result = uszipcode.GetInfoByZIP(zip);
XDocument xml = XDocument.Parse(result);
答案 0 :(得分:1)
您可以从XmlNode
属性获取OuterXml
引用的XML部分的字符串表示形式:
System.Xml.XmlNode result = uszipcode.GetInfoByZIP(zip);
XDocument xml = XDocument.Parse(result.OuterXml);
String timeZone = (string)xml.Descendants("TIME_ZONE").First();
或者,您可以直接使用XPath和SelectSingleNode()
从XmlNode
找到目标元素:
System.Xml.XmlNode result = uszipcode.GetInfoByZIP(zip);
String timeZone = xml.SelectSingleNode(".//TIME_ZONE").InnerText;
答案 1 :(得分:-1)
看起来你有一个错字。该错误是由于在XmlDocument.Parse需要字符串时传递XMLNode。试试这个:
XmlNode result = uszipcode.Get...
string myNodeValue = result.OutterXml; // this will give you XML node tree you need as a string..
XDocument xml = XDocument.parse(mynodeValue);