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();