如何在XML中获取节点的名称

时间:2016-05-02 06:41:51

标签: c# xml

<Tables>
  <Table name="Test">
    <tablename>TestTable</tablename>
    <refTable>NULL</refTable>
    <refTableIDColumn>NULL</refTableIDColumn>
  </Table>
</Tables>

以上是我的XML输入。我可以使用下面的代码

按表名提取节点
XmlNodeList companyList = doc.GetElementsByTagName("Table");

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

2 个答案:

答案 0 :(得分:1)

可以使用XPath过滤/查询XmlNodeList。在您的情况下,您希望查找name的{​​{1}}属性,例如:

Table

您的结果将是XmlAttributes的集合,可以使用var tableNames = doc.SelectNodes("//Table/@name"); 属性检索实际名称。

See it in action on DotNetFiddle

btw:您的上一个xml标记缺少InnerText

答案 1 :(得分:1)

假设您的C驱动器中的xml文件名为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;