从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>(请记住,"item“是带有人员信息的对象。)
我有一个定义为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);
}
}我不知道为什么这不管用。有什么帮助吗?
发布于 2018-04-04 08:30:08
您的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"将选择item元素,这些元素是results元素的子元素,而results元素在XML中的任何位置。
https://stackoverflow.com/questions/49645629
复制相似问题