我需要找到一种方法将 xml 文档拆分成不同的字符串

i need to find a way to split an xml document into different strings

我有一个每次都可以改变的传入字符串,字符串是xml。

在服务器从 SQL 数据 table 中提取字符串后,该字符串正在从服务器发送。

更多信息:stock 是 table 名称,它有几列,但我使用 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>"

现在我正在做的是将其保存为xml文档类型,然后使用方法

将其转换为字符串
 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 个不同的选项。

显然,问题是保存的是一个连续的字符串,因此程序无法将其拆分为“”,因为那些不存在。

如何拆分传入的文本?

在此示例中,我使用 System.Xml.Linq 命名空间中的 XDocument,而不是 XmlDocument

假设您可以使用 XDocument,您可以遍历 stock 个节点,然后 select 它们的 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);
}