如果可能的话,将XML转换为Gridview
本文关键字:XML 转换 Gridview 如果 | 更新日期: 2023-09-27 18:01:45
一天好,我要尝试尽可能简短但信息丰富,我使用asp.net 3.5和c#,基本上我要做的是从我从HTTPRequest收到的xml文件收集信息。但是使用通常的数据集。Readxml不适合我。在发表任何答案之前,请花一分钟浏览一下所有内容。
我收到的xml看起来像这样:(我已经删除了一些信息,但很高兴提供我收到的完整xml集,因为我正试图不将此垃圾信息垃圾)
<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();
};
但简单的答案是,这并没有返回一组适当的信息来填充gridview。表XMLDataSet.Tables[7]. rows . count . tostring()包含223行,这是完全不正确的,我给出的xml是1个结果(当然我遗漏了为示例返回的216个"字段"),但似乎它正在为每个"字段"创建一行。我的问题是,我将如何获得信息到DataGridView,或者我应该做一些完全不同的东西来显示这个信息?我想使用gridview的原因纯粹是因为我对gridview的自定义感到满意。
您有一个错误的XML模式,因此您无法读取XML文件所以你不能加载XML的问题。在渲染到网格视图之前,请尝试修复XML模式
查询= "字符串("打印机")"= =>查询字符串("打印机")"
请注意,'&'会破坏XML并导致渲染错误,因此我使用%26%替换它。
和根标签的结束标签[SEGMENTS]
希望这对你有帮助