XML в DropDownList

// У меня есть следующий код XML:

 <?xml version="1.0" encoding="utf-8"?>
        <warehouse>
          <cat id="computer">
            <item>
              <SN>1</SN>
              <name>Toshiba</name>
              <quantity>12</quantity>
              <description>CPU: CORE I5 RAM: 3 GB HD: 512 GB</description>
              <price>400 USD</price>
            </item>
            <item>
              <SN>2</SN>
              <name>Dell</name>
              <quantity>14</quantity>
              <description>CPU: CORE I5 RAM: 3 GB HD: 512 GB</description>
              <price>300 USD</price>
            </item>
            <item>
              <SN>3</SN>
              <name>Dell</name>
              <quantity>14</quantity>
              <description>CPU: CORE I5 RAM: 3 GB HD: 512 GB</description>
              <price>300 USD</price>
            </item>
            <item>
              <SN>5</SN>
              <name>Dell</name>
              <quantity>14</quantity>
              <description>CPU: CORE I5 RAM: 3 GB HD: 512 GB</description>
              <price>300 USD</price>
            </item>
            <item>
              <SN>6</SN>
              <name>Dell</name>
              <quantity>14</quantity>
              <description>CPU: CORE I5 RAM: 3 GB HD: 512 GB</description>
              <price>300 USD</price>
            </item>
            <item>
              <SN>8</SN>
              <name>Toshiba</name>
              <quantity>13</quantity>
              <description>CPU: CORE I5 RAM: 5 GB HD: 512 GB3</description>
              <price>400 USD</price>
            </item>
            <item>
              <SN>9</SN>
              <name>Toshiba</name>
              <quantity>13</quantity>
              <description>CPU: CORE I5 RAM: 5 GB HD: 512 GB3</description>
              <price>400 USD</price>
            </item>
            <item>
              <SN>dsfdSF</SN>
              <name>fsdfsD</name>
              <quantity>dsfdSFS</quantity>
              <description>FSDFS</description>
              <price>FSDFSD</price>
            </item>
            <item>
              <SN>dsfdSF</SN>
              <name>fsdfsD</name>
              <quantity>dsfdSFS</quantity>
              <description>FSDFS</description>
              <price>FSDFSD</price>
            </item>
            <item>
              <SN>alia</SN>
              <name>alia</name>
              <quantity>alia</quantity>
              <description>alia</description>
              <price>alia</price>
            </item>
          </cat>
          <cat id="Stationery">
            <item>
              <SN> 1 </SN>
              <name>note books</name>
              <quantity>250</quantity>
              <description>Caterpiller</description>
              <price>5 USD</price>
            </item>
            <item>
              <SN> 2 </SN>
              <name> pencils </name>
              <quantity> 300 </quantity>
              <description> Caterpiller </description>
              <price> 2 USD </price>
            </item>
            <item>
              <SN> 3 </SN>
              <name> note books </name>
              <quantity> 250 </quantity>
              <description> Caterpiller  </description>
              <price> 5 USD </price>
            </item>
            <item>
              <SN>4</SN>
              <name>pencils</name>
              <quantity>45</quantity>
              <description>Pilot</description>
              <price>4 USD</price>
            </item>
            <item>
              <SN>5</SN>
              <name>pencils</name>
              <quantity>45</quantity>
              <description>Pilot</description>
              <price>4 USD</price>
            </item>
            <item>
              <SN>6</SN>
              <name>pencils</name>
              <quantity>45</quantity>
              <description>Pilot</description>
              <price>4 USD</price>
            </item>
            <item>
              <SN>7</SN>
              <name>sdfsdfsdfsdfsd</name>
              <quantity>sdfsdf</quantity>
              <description>dsfsdfs</description>
              <price>sdfsdf</price>
            </item>
            <item>
              <SN>8</SN>
              <name>pencils</name>
              <quantity>45</quantity>
              <description>Pilot</description>
              <price>4 USD</price>
            </item>
            <item>
              <SN>9</SN>
              <name>books</name>
              <quantity>250</quantity>
              <description>chinses</description>
              <price>3 USD</price>
            </item>
            <item>
              <SN>alia</SN>
              <name>alia</name>
              <quantity>alia</quantity>
              <description>alia</description>
              <price>alia</price>
            </item>
          </cat>
          <cat id="Furniture">
            <item>
              <SN> 1 </SN>
              <name>dasd</name>
              <quantity>asdasd</quantity>
              <description>das</description>
              <price>dasd</price>
            </item>
            <item>
              <SN> 2 </SN>
              <name> chairs </name>
              <quantity> 18 </quantity>
              <description> European Type</description>
              <price> 150 USD </price>
            </item>
            <item>
              <SN>3</SN>
              <name>Tabels</name>
              <quantity>12</quantity>
              <description>European Type</description>
              <price>50 USD</price>
            </item>
            <item>
              <SN>4</SN>
              <name>Tabels</name>
              <quantity>12</quantity>
              <description>European Type</description>
              <price>50 USD</price>
            </item>
            <item>
              <SN>5</SN>
              <name>Tabels</name>
              <quantity>12</quantity>
              <description>European Type</description>
              <price>50 USD</price>
            </item>
            <item>
              <SN>6</SN>
              <name>Tabels</name>
              <quantity>12</quantity>
              <description>European Type</description>
              <price>50 USD</price>
            </item>
            <item>
              <SN>7</SN>
              <name>Tabels</name>
              <quantity>12</quantity>
              <description>European Type</description>
              <price>50 USD</price>
            </item>
            <item>
              <SN>8</SN>
              <name>Tabels</name>
              <quantity>12</quantity>
              <description>European Type</description>
              <price>50 USD</price>
            </item>
            <item>
              <SN>alia</SN>
              <name>alia</name>
              <quantity>alia</quantity>
              <description>alia</description>
              <price>alia</price>
            </item>
          </cat>
        </warehouse> 

Я хочу создать с помощью ASP.net выпадающий список для отображения содержимого где. Я пробовал это выражение x путь

warehouse/cat[@id='computer']/item/SN/text()

но доза не работает и выпадающий список все еще пуст! Помоги мне, пожалуйста.*/

или как я могу решить мою проблему, используя этот код на pagerloader

if (!IsPostBack)
        {
            DataSet ds = new DataSet();
            ds.ReadXml(MapPath("~/XML/XML.xml"));
            DataView dm = ds.Tables["cat"].DefaultView;
            DataView dv = ds.Tables["item"].DefaultView;
            DropDownList1.DataTextField = "SN";
            DropDownList1.DataValueField = "SN";


            //now bind the dropdownlist to the dataview
            DropDownList1.DataSource = dv;
            DropDownList1.DataBind();

        }

я просто хочу добавить атрибут.

1 ответ

Решение

Как насчет этого? Я смог получить эту работу, то есть, если вы не возражаете, переходя на использование XmlDocument вместо DataSet. Бит "InnerText" не идеален, но он превосходит необходимость обхода узлов и привязки по отдельности.

обратите внимание, что я немного изменил Xpath, чтобы InnerText как свойство работало

            XmlDocument doc = new XmlDocument();
            doc.Load(@"~/XML/XML.xml");
            var nodes = doc.SelectNodes("warehouse/cat[@id='computer']/item/SN");

            myDropDown.DataTextField = "InnerText";
            myDropDown.DataValueField = "InnerText";


            //now bind the dropdownlist to the dataview
            myDropDown.DataSource = nodes;
            myDropDown.DataBind();
Другие вопросы по тегам