簡體   English   中英

C#XML到dropdownBox

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM