【发布时间】:2011-10-19 13:46:20
【问题描述】:
我似乎在尝试从网站解析 XML 的 WP7 上遇到问题。由于某种原因,它永远不会填充呼叫。没有错误,xml 看起来不错,我指定了 NS,但仍然没有。
我在这里错过了一些非常简单的东西吗? 4 小时后,我的头撞在桌子上。
我的 C# 技能已经 2 个月大了,所以可能是我(可能会)。
这是我用来解析从网站接收到的 XML 的代码...
public void ParseCallSignData(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
string s = e.Result;
XDocument doc;
XmlReaderSettings settings = new XmlReaderSettings();
settings.DtdProcessing = DtdProcessing.Ignore;
using (XmlReader reader = XmlReader.Create(new StringReader(s), settings))
{
doc = XDocument.Load(reader);
}
XNamespace ns = @"http://www.qrz.com";
var calldata = from query in doc.Descendants(ns + "Callsign")
select new callsign
{
call = (string)query.Element(ns +"call")
};
这是我要解析的 XML。
<?xml version="1.0" encoding="iso-8859-1" ?>
- <QRZDatabase version="1.18" xmlns="http://www.qrz.com">
- <Callsign>
<call>W7EIX</call>
<dxcc>223</dxcc>
<fname>DICK</fname>
<name>TONITON</name>
<country>United States</country>
<lat>25.586910</lat>
<lon>-95.039318</lon>
<grid>EL29lo</grid>
<county>Harris</county>
<ccode>271</ccode>
<land>England</land>
<class>A</class>
<codes>ETP</codes>
<qslmgr>DIRECT PREFERRED NO SAE REQUIRED!</qslmgr>
<u_views>1716</u_views>
<moddate>2010-07-05 19:32:12</moddate>
<MSA>3360</MSA>
<AreaCode>713</AreaCode>
<TimeZone>Central</TimeZone>
<GMTOffset>-6</GMTOffset>
<DST>Y</DST>
<eqsl>1</eqsl>
<mqsl>1</mqsl>
<cqzone>0</cqzone>
<ituzone>0</ituzone>
<locref>3</locref>
<born>1968</born>
<lotw>1</lotw>
</Callsign>
- <Session>
<Key>afff7a6dfdff36f68fffb7dfff49fc7</Key>
<Count>18</Count>
<SubExp>Mon Sep 19 07:00:00 2011</SubExp>
<GMTime>Wed Aug 3 21:06:58 2011</GMTime>
<Remark>cpu: 0.073s</Remark>
</Session>
</QRZDatabase>
【问题讨论】:
-
您是否在某个时候执行查询?
-
那将是我当时在顶部提到的“非常简单”的东西。谢谢你指出我需要的方向。现在可以了!
标签: c# xml windows-phone-7 linq-to-xml