C# 在C中使用XmlReader读取特定深度的XML元素#
我有一个XML文件,其中一些节点位于不同的深度。我需要一个代码来只读取特定的深度节点,而不是全部,并且只能通过在C#中使用XmlReader来读取 有人能帮我吗 下面是我的XML结构。我只想读取“Depth2”节点 您可以使用以下功能:C# 在C中使用XmlReader读取特定深度的XML元素#,c#,.net,xmlreader,C#,.net,Xmlreader,我有一个XML文件,其中一些节点位于不同的深度。我需要一个代码来只读取特定的深度节点,而不是全部,并且只能通过在C#中使用XmlReader来读取 有人能帮我吗 下面是我的XML结构。我只想读取“Depth2”节点 您可以使用以下功能: var result = XDocument.Load("data.xml").Root .Descendants("Depth2"); 它将为您找到xml的根目录下的所有Depth2元素 对于XmlReader方
var result = XDocument.Load("data.xml").Root
.Descendants("Depth2");
它将为您找到xml的根目录下的所有Depth2
元素
对于XmlReader
方式,您可以:
List<XmlNode> nodes = new List<XmlNode>();
using (var reader = XmlReader.Create("data.xml"))
{
XmlDocument document = new XmlDocument();
while (reader.Read())
{
if (reader.Depth == 2 && reader.NodeType == XmlNodeType.Element)
{
XmlNode node = document.CreateNode(XmlNodeType.Element, reader.Name, "");
//Here I just added all the inner xml but you can do whatever you need
node.InnerXml = reader.ReadInnerXml();
nodes.Add(node);
}
reader.MoveToElement();
}
}
List节点=新建列表();
使用(var reader=XmlReader.Create(“data.xml”))
{
XmlDocument document=新的XmlDocument();
while(reader.Read())
{
if(reader.Depth==2&&reader.NodeType==XmlNodeType.Element)
{
XmlNode=document.CreateNode(XmlNodeType.Element,reader.Name,“”);
//这里我刚刚添加了所有的内部xml,但是您可以做任何您需要的事情
node.InnerXml=reader.ReadInnerXml();
nodes.Add(node);
}
reader.MoveToElement();
}
}
您尝试过什么?你查了什么?还请添加您的xmlHi Gilad Green示例,感谢您的快速响应。
var result = XDocument.Load("data.xml").Root
.Descendants("Depth2");
List<XmlNode> nodes = new List<XmlNode>();
using (var reader = XmlReader.Create("data.xml"))
{
XmlDocument document = new XmlDocument();
while (reader.Read())
{
if (reader.Depth == 2 && reader.NodeType == XmlNodeType.Element)
{
XmlNode node = document.CreateNode(XmlNodeType.Element, reader.Name, "");
//Here I just added all the inner xml but you can do whatever you need
node.InnerXml = reader.ReadInnerXml();
nodes.Add(node);
}
reader.MoveToElement();
}
}