首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# XML到dropdownBox

C# XML到dropdownBox
EN

Stack Overflow用户
提问于 2018-04-04 07:54:28
回答 1查看 45关注 0票数 0

从URL返回的XML:

代码语言:javascript
复制
<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结果返回名称,并将返回的所有名称放入一个下拉框中。

代码语言:javascript
复制
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);
    }
}

我不知道为什么这不管用。有什么帮助吗?

EN

回答 1

Stack Overflow用户

发布于 2018-04-04 08:30:08

您的XPath不正确。而不是

代码语言:javascript
复制
 XmlNodeList nodes = root.SelectNodes("/results/item");

试一试

代码语言:javascript
复制
XmlNodeList nodes = root.SelectNodes("results/item");

代码语言:javascript
复制
XmlNodeList nodes = root.SelectNodes("./results/item");

代码语言:javascript
复制
XmlNodeList nodes = root.SelectNodes("//results/item");

"results/item""./results/item"用于作为根节点子节点的results元素的子元素的item元素。

使用"//results/item"将选择item元素,这些元素是results元素的子元素,而results元素在XML中的任何位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49645629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档