如何通过标签名称获取xml元素?

时间:2015-08-31 19:07:18

标签: .net xml

这是我正在加载的XML文件:

<?xml version="1.0"?>
<Table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <child1>
    <child2></child2>
  </child1>
</Table>

我正在尝试获取元素<child2>

我正在使用以下代码:

var xroot = XElement.Load(filename);
var el = xroot.Element("Table");

第二行始终返回null

3 个答案:

答案 0 :(得分:1)

您不需要第var el = xroot.Element("Table");行。

var xroot包含<Table>元素(因为这是XML文档的根元素)。

根据您的评论,此代码适用于我:

var xroot = XElement.Load(filename);
var el = xroot.Element("child1").Element("child2");

或者,为了获得所有&#34; child2&#34;文档中的节点:

var xroot = XElement.Load(filename);
var el = xroot.Element("child1").Element("child2");
foreach (XElement child2 in xroot.Descendants("child2"))
{
  ...
}

答案 1 :(得分:1)

var xmlDoc = new XmlDocument();
xmlDoc.Load('yourXmlFile'); // or xmlDoc.LoadXml('your xml');
var mainXmlNode = xmlDoc.DocumentElement; // this now holds information about your 'table' node

答案 2 :(得分:0)

好的,我在你的例子中看到1个空元素(表),其中包含2个属性,对吗?

似乎是正确的,第一个(也是唯一的元素)“Table”为空,没有文本内容。