我似乎在WP7尝试从网站解析XML时遇到问题。由于某种原因,它永远不会填充电话。没有错误,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>
答案 0 :(得分:2)
那些“-
”字符看起来很可疑。他们不应该在那里。 (...虽然这可能是浏览器中'cut'n'paste的人工制品)
答案 1 :(得分:0)
3个月后,但对于那些想知道的人。我在我的应用程序中使用了更简单的东西:
string s = e.Result;
// Load the document
XDocument xdoc = XDocument.Parse(xml);
// Get the datas you want using doc.Element("...").Element("...")...
// to go down your XML doc
var calldata = from query in doc.Element("Callsign")
select new callsign
{
call = query.Element("call").Value
};
希望它会对某人有所帮助。