C# 如果可能,将XML转换为Gridview?
你好,我将尽可能简短但信息丰富,我正在使用asp.NET3.5和C#,基本上我试图做的是从我从HTTPRequest收到的xml文件中收集信息。但是,使用通常的dataset.readxml对我来说不起作用。在发布任何答案之前,请花一分钟检查所有内容 我收到的xml看起来是这样的:(我删除了一些信息,但很高兴提供我收到的完整xml集,因为我试图不用垃圾信息来发送垃圾信息)C# 如果可能,将XML转换为Gridview?,c#,asp.net,xml,gridview,streamreader,C#,Asp.net,Xml,Gridview,Streamreader,你好,我将尽可能简短但信息丰富,我正在使用asp.NET3.5和C#,基本上我试图做的是从我从HTTPRequest收到的xml文件中收集信息。但是,使用通常的dataset.readxml对我来说不起作用。在发布任何答案之前,请花一分钟检查所有内容 我收到的xml看起来是这样的:(我删除了一些信息,但很高兴提供我收到的完整xml集,因为我试图不用垃圾信息来发送垃圾信息) 但简单的答案是,这不会返回一组适当的信息来填充gridview。表XMLDataSet.Tables[7].Rows.Cou
但简单的答案是,这不会返回一组适当的信息来填充gridview。表XMLDataSet.Tables[7].Rows.Count.ToString()包含223行,这是完全错误的,我给出的xml是1个结果(当然,我遗漏了示例中返回的216个“字段”),但它似乎为每个“字段”创建了一行。我的问题是,我应该如何将信息放入DataGridView,或者我应该做一些不同的事情来显示这些信息?我想使用gridview的原因纯粹是因为我可以自定义gridview。您的XML架构错误,因此无法读取XML文件 因此,问题是您无法加载XML。 在呈现到网格视图之前,请尝试修复xml架构 QUERY=“string(“打印机”)”=>QUERY=“string('printers')” 请注意,&'会破坏XML并导致呈现错误,因此我使用%26%替换它 和根标记[段]的结束标记
希望这能对您有所帮助不幸的是,我无法更改从HttpWebRequest得到的结果,否则我会,没有办法解决这个问题,我真正需要的是一个“”元素的列表,当然整个结果集是理想的,其中字段和它们的属性都放在列中。在这个阶段(因为我可以使用XmlReader=XmlReader.Create(readerSR)读取xml),我正在考虑创建一个自定义数据集,并将我需要的数据插入数据集中。。。不确定这是否理想,但我认为使用XMLDocument导出所需数据是个好主意。
<SEGMENTS>
<SEGMENT NAME="webcluster">
<RESULTPAGE>
<QUERYTRANSFORMS>
<QUERYTRANSFORM NAME="Original query" ACTION="NOP" QUERY="printers" CUSTOM="" MESSAGE="Original query" MESSAGEID="1"/>
<QUERYTRANSFORM NAME="FastQT_Lemmatizer" ACTION="nop" QUERY="" CUSTOM="No change to query" MESSAGE="Lemmatization turned off for current query" MESSAGEID="16" INSTANCE="lemmatizer"/>
<QUERYTRANSFORM NAME="Final query" ACTION="NOP" QUERY="string("printers")" CUSTOM="FQL" MESSAGE="Final query" MESSAGEID="1"/>
</QUERYTRANSFORMS>
<NAVIGATION ENTRIES="0">
</NAVIGATION>
<CLUSTERS/>
<RESULTSET FIRSTHIT="1" LASTHIT="1" HITS="1" TOTALHITS="1121" MAXRANK="6610" TIME="0.0000">
<HIT NO="1" RANK="6610" SITEID="0" MOREHITS="0" FCOCOUNT="0">
<FIELD NAME="body"/>
<FIELD NAME="customerid">36547986</FIELD>
<FIELD NAME="name">Yahunn Digital <key>Printers</key></FIELD>
<FIELD NAME="itemcode">DTRJ</FIELD>
<FIELD NAME="bookcode">155512</FIELD>
<FIELD NAME="heading">BANNERS</FIELD>
<FIELD NAME="link2">15530694.GIF</FIELD>
</HIT>
</RESULTSET>
<PAGENAVIGATION>
<NEXTPAGE FIRSTHIT="2" LASTHIT="2" URL="/cgi-bin/xml-search?query=printers&hits=1&offset=1"/>
</PAGENAVIGATION>
</RESULTPAGE>
</SEGMENT>
HttpWebRequest request = WebRequest.Create(builder.Uri) as HttpWebRequest;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
// Get the response stream
StreamReader readerSR = new StreamReader(response.GetResponseStream());
// Console application output
//lblReturn.Text = readerSR.ReadToEnd().ToString();
DataSet XMLDataSet = new DataSet();
XMLDataSet.ReadXml(readerSR);
dgvResults.DataSource = XMLDataSet.Tables[9].DefaultView;
dgvResults.DataBind();
};