我有一個每次都可以更改的傳入字串,該字串是 xml。
服務器從 SQL 資料表中提取字串后,從服務器發送該字串。
更多資訊:stock 是表名,它有幾列,但我使用 executeReader 只得到一個。
"<Result>\r\n <stock>\r\n <name>cheese</name>\r\n </stock>\r\n <stock>\r\n <name>butter</name>\r\n </stock>\r\n <stock>\r\n <name>MILK</name>\r\n </stock>\r\n <stock>\r\n <name>meat</name>\r\n </stock>\r\n</Result>"
現在我正在做的是將其保存為 xmlDocument 型別,然后使用方法將其轉換為字串
private void AddList(XmlDocument xmlDoc)
{
string s = (xmlDoc.DocumentElement.InnerText);
string[] list = s.Split(" ");
int i = 0;
while(i<list.Length)
{
TypeCB.Items.Add(list[i]);// typeCB is a combo box which i want to have the name of the items that were sent
i ;
}
}
這添加了 cheesebutterMILKmeat 作為一種選擇,而我希望它是 4 種不同的。
顯然問題是保存的是一個連續的字串,因此程式不能將其拆分為“”,因為那些不存在。
如何拆分傳入的文本?
uj5u.com熱心網友回復:
在此示例中,我使用XDocument的是System.Xml.Linq命名空間,而不是XmlDocument.
假設您可以使用XDocument,您可以遍歷stock節點,然后選擇它們的name節點。
// do something like this instead of how you create your XmlDocument:
string xml = "<Result>\r\n <stock>\r\n <name>cheese</name>\r\n </stock>\r\n <stock>\r\n <name>butter</name>\r\n </stock>\r\n <stock>\r\n <name>MILK</name>\r\n </stock>\r\n <stock>\r\n <name>meat</name>\r\n </stock>\r\n</Result>";
XDocument doc = XDocument.Parse(xml);
//Once you have the parsed xml you can select the node values and add them to the combobox
foreach (XElement el in doc.Descendants("stock"))
{
string name = el.Element("name").Value;
TypeCB.Items.Add(name);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/462420.html
