C# 如果可能,将XML转换为Gridview?

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

你好,我将尽可能简短但信息丰富,我正在使用asp.NET3.5和C#,基本上我试图做的是从我从HTTPRequest收到的xml文件中收集信息。但是,使用通常的dataset.readxml对我来说不起作用。在发布任何答案之前,请花一分钟检查所有内容

我收到的xml看起来是这样的:(我删除了一些信息,但很高兴提供我收到的完整xml集,因为我试图不用垃圾信息来发送垃圾信息)


但简单的答案是,这不会返回一组适当的信息来填充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();
        };