如何从没有属性的XML文件中获取节点并放入字符串列表

西西莫斯基

我想显示没有其属性的子节点的标签名称。然后,应将这些标签名称(节点)放入List字符串中。这是我的XML文件的示例:

<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
    <CAR>
        <ID>21</ID>
        <MANUFACTURER>Ford</MANUFACTURER>
        <MODEL>Fiesta</MODEL>
    </CAR>
    <CAR>
        <ID>22</ID>
        <MANUFACTURER>Peugeot</MANUFACTURER>
        <MODEL>508</MODEL>
    </CAR>
</ROOT>

因此,我想在控制台输出中获得的效果如下所示:

ID
MANUFACTURER
MODEL

然后,我想将ID,MANUFACTURER和MODEL标记名称存储在List字符串a中。

这是我到目前为止尝试过的代码:

            XmlDocument xmlDocument = new XmlDocument();
            xmlDocument.PreserveWhitespace = true;
            try
            {
                xmlDocument.Load("XMLFile.xml");
            }
            catch (FileNotFoundException ex)
            {
                Console.WriteLine(ex);
            }

            Console.WriteLine(xmlDocument.OuterXml);

            XmlNodeList nodeList = xmlDocument.SelectNodes("ROOT/CAR");
            foreach(XmlNode node in nodeList)
            {
                Console.WriteLine(node.ChildNodes);
                xmlNodes.Add(node.ChildNodes.ToString());
            }

问题在于它没有显示我想要的方式。结果,我只得到两个System.Xml.XmlChildNodes似乎对应于两个<CAR>节点的对象,而不是它的三个子节点,例如ID,MANUFACTURER和MODEL。

System.Xml.XmlChildNodes
System.Xml.XmlChildNodes

将项目添加到列表中基本上会添加与上述相同的内容。

我究竟做错了什么?

万杜克

如果必须使用XmlDocument,则可以-

List<string> elements = new List<string>();
XmlNodeList CarNodes = xml.SelectNodes("Root/Car");
foreach(XmlNode c in CarNodes)
{
    foreach(XmlNode n in c.ChildNodes)
    {
        if (!elements.Contains(n.Name))
        {
            elements.Add(n.Name);
        }
    }
}

但是我发现XDocument更简单,可读性更好。

XDocument xdoc = XDocument.Parse(yourXmlString);
List<string> elements = xdoc.Descendants("Car")
                            .DescendantNodes().OfType<XElement>()
                            .Select(x => x.Name).Distinct().ToList();

这就是您所需要的。同样易于阅读,获取“ Car”节点的所有后代,并获取其中所有XElement的不同名称。

另一种方式-

List<string> elements = xdoc.Descendants("Car").First()
                            .DescendantNodes().OfType<XElement>()
                            .Select(x => x.Name).ToList();

在这种情况下,我已删除了“独特的”和而仅获得第一个轿厢节点您可以看到区别-如果在任何情况下其他Car节点都具有额外的元素,则您将错过通过这种方式获取信息的机会。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从没有jQuery的字符串获取图像src

来自分类Dev

如何从没有cURL的URL获取响应?

来自分类Dev

从没有字典的字符串中形成变量

来自分类Dev

如何从没有特定名称的JSONObject获取字符串

来自分类Dev

如何从没有$ _GET变量的网址获取文件名?

来自分类Dev

如何从没有索引的列中获取数据

来自分类Dev

如何从没有任何模块的节点js中的JWT中提取信息?

来自分类Dev

从没有Web服务器的本地主机中获取文件

来自分类Dev

如何从没有附加内容URL的下载按钮中获取或卷曲?

来自分类Dev

从没有正则表达式的字符串中获取数字集

来自分类Dev

HTML:从没有ID的输入中获取价值

来自分类Dev

从没有正则表达式的字符串中剪切网址

来自分类Dev

如何从没有ID的表中获取行

来自分类Dev

如何从没有空列的.dat文件中获取数据

来自分类Dev

如何从没有命令提示符的文件中删除“系统文件”属性?

来自分类Dev

如何从没有匹配项的glob模式中静默获取空字符串

来自分类Dev

如何从没有标签的HTML字符串中获取数字?

来自分类Dev

从没有jQuery的javascript函数中返回粗体/彩色搜索字符串

来自分类Dev

如何从没有$ _GET变量的网址获取文件名?

来自分类Dev

如何从没有4个字符串中的任何一个的文件行中提取?

来自分类Dev

如何使用带有 Python 的 Selenium Webdriver 从没有属性的工具提示中获取文本?

来自分类Dev

从没有 ID 的 Img 中获取 ID

来自分类Dev

如何从没有运算符>>的字符串流中返回下一个标记?

来自分类Dev

无法从没有标题名称的 Json 列表中获取对象

来自分类Dev

从没有 OutOfMemoryError 的 Json 获取字符串

来自分类Dev

如何从没有扩展名的路径中获取特定文件名python

来自分类Dev

在php中从没有时间的字符串中获取日期

来自分类Dev

Java:从没有 lang3 utils 和 StringUtils 的字符串中获取子字符串

来自分类Dev

如何从没有属性的 artifactory 中获取最新的 artifact

Related 相关文章

  1. 1

    从没有jQuery的字符串获取图像src

  2. 2

    如何从没有cURL的URL获取响应?

  3. 3

    从没有字典的字符串中形成变量

  4. 4

    如何从没有特定名称的JSONObject获取字符串

  5. 5

    如何从没有$ _GET变量的网址获取文件名?

  6. 6

    如何从没有索引的列中获取数据

  7. 7

    如何从没有任何模块的节点js中的JWT中提取信息?

  8. 8

    从没有Web服务器的本地主机中获取文件

  9. 9

    如何从没有附加内容URL的下载按钮中获取或卷曲?

  10. 10

    从没有正则表达式的字符串中获取数字集

  11. 11

    HTML:从没有ID的输入中获取价值

  12. 12

    从没有正则表达式的字符串中剪切网址

  13. 13

    如何从没有ID的表中获取行

  14. 14

    如何从没有空列的.dat文件中获取数据

  15. 15

    如何从没有命令提示符的文件中删除“系统文件”属性?

  16. 16

    如何从没有匹配项的glob模式中静默获取空字符串

  17. 17

    如何从没有标签的HTML字符串中获取数字?

  18. 18

    从没有jQuery的javascript函数中返回粗体/彩色搜索字符串

  19. 19

    如何从没有$ _GET变量的网址获取文件名?

  20. 20

    如何从没有4个字符串中的任何一个的文件行中提取?

  21. 21

    如何使用带有 Python 的 Selenium Webdriver 从没有属性的工具提示中获取文本?

  22. 22

    从没有 ID 的 Img 中获取 ID

  23. 23

    如何从没有运算符>>的字符串流中返回下一个标记?

  24. 24

    无法从没有标题名称的 Json 列表中获取对象

  25. 25

    从没有 OutOfMemoryError 的 Json 获取字符串

  26. 26

    如何从没有扩展名的路径中获取特定文件名python

  27. 27

    在php中从没有时间的字符串中获取日期

  28. 28

    Java:从没有 lang3 utils 和 StringUtils 的字符串中获取子字符串

  29. 29

    如何从没有属性的 artifactory 中获取最新的 artifact

热门标签

归档