[英]C# XML to dropdownBox
從URL返回的XML:
<root>
<APIVersion>0.1</APIVersion>
<resource>persons</resource>
<search>givenname</search>
<query>andreas</query>
<limit>400</limit>
<results>
<item>
<persons>
<personId>21168</personId>
<givenName>Andreas</givenName>
<familyName>Garpe</familyName>
<email>andreas.garpe@t-fk.no</email>
<mobilePhone/>
<workPhone/>
<positions>...</positions>
</persons>
</item>
<item>...</item>
<item>...</item>
<item>...</item>
</results>
</root>
(請記住,“項目”是帶有人員信息的對象。)
我有一個定義為bunifuTextbox1的文本框。
我輸入了一個名稱,它從返回的XML結果中返回了名稱,並將所有返回的名稱放入一個下拉框中。
private void button1_Click(object sender, EventArgs e)
{
string address = "http://ws.t-fk.no/?resource=persons&search=givenname&string=" + bunifuTextbox1.text;
XmlDocument doc1 = new XmlDocument();
doc1.Load(address);
XmlElement root = doc1.DocumentElement;
XmlNodeList nodes = root.SelectNodes("/results/item");
foreach (XmlNode node in nodes)
{
string tempf = node["persons"]["givenName"].InnerText;
bunifuDropdown1.AddItem(tempf);
}
}
我不確定為什么這行不通。 有什么幫助嗎?
您的XPath不正確。 代替
XmlNodeList nodes = root.SelectNodes("/results/item");
嘗試
XmlNodeList nodes = root.SelectNodes("results/item");
要么
XmlNodeList nodes = root.SelectNodes("./results/item");
要么
XmlNodeList nodes = root.SelectNodes("//results/item");
對於作為"./results/item"
的子元素的results
元素的子元素的item
元素,請使用"results/item"
或"./results/item"
。
使用"//results/item"
將選擇item
是兒童的元素results
元素,其中的results
元素在XML的任何地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.