【问题标题】:how to get Name of the node in XML如何在 XML 中获取节点的名称
【发布时间】:2016-05-02 06:41:51
【问题描述】:
<Tables>
  <Table name="Test">
    <tablename>TestTable</tablename>
    <refTable>NULL</refTable>
    <refTableIDColumn>NULL</refTableIDColumn>
  </Table>
</Tables>

上面是我的 XML 输入。我可以使用下面的代码按表名提取节点

XmlNodeList companyList = doc.GetElementsByTagName("Table");

我想要给Table 节点的名称。例如,在这里我希望文本为"Test"。我怎么得到那个。请帮忙。

【问题讨论】:

  • 你所说的“name”其实就是名为“name”的属性。使用 C# 的任何方法来访问标签的 属性
  • 您的Tables 标签未正确关闭,请编辑相关xml

标签: c# xml


【解决方案1】:

假设您的 xml 文件在 C 驱动器中名为 test.xml,那么您可以使用此代码获取名称

XDocument xDoc = XDocument.Load(@"C:\test.xml");

XElement root = xDoc.Element("Tables");    // select root
XElement elm1 = root.Element("Table");    // get elm1 == null
string name = elm1.Attribute("name").Value;

【讨论】:

    【解决方案2】:

    XmlNodeList 可以使用XPath 过滤/查询。在您的情况下,您想查找 Tablename 属性,例如:

    var tableNames = doc.SelectNodes("//Table/@name");
    

    您的结果将是 XmlAttributes 的集合,可以使用 InnerText 属性检索实际名称。

    See it in action on DotNetFiddle

    顺便说一句:您的最后一个 xml 标记缺少 /

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 2019-10-02
      • 2012-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多