XML для Gridview, если это возможно? - PullRequest
0 голосов
/ 12 июля 2011

Добрый день, я постараюсь быть как можно более кратким, но информативным, я использую asp.net 3.5 и C #, в основном я пытаюсь собрать информацию из XML-файла, который я получаю из HTTPRequest.Однако использование обычного dataset.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.

1 Ответ

0 голосов
/ 12 июля 2011

У вас неправильная XML-схема, поэтому вы не можете прочитать XML-файл, поэтому проблема в том, что вы не можете загрузить XML.пожалуйста, попробуйте исправить XML-схему перед отображением в виде сетки

QUERY = "string (" printers ")" => QUERY = "string ('printers')"

Обратите внимание, что '&'уничтожить XML и вызвать ошибку рендеринга, поэтому я обычно заменял его на% 26%.

и закрывающий тег для корневого тега [SEGMENTS]

надеюсь, это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...