[英]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.