gpt4 book ai didi

c# - 如何在 XML C# 中获取根级节点

转载 作者:数据小太阳 更新时间:2023-10-29 03:00:07 26 4
gpt4 key购买 nike

我正在尝试访问给定 xml 中第一级的元素。我正在使用下面的代码来访问它,但它首先为我提供了嵌套代码。

 var xml = "<grading>" +
"<leap>" +
"<controlId>1</controlId>" +
"</leap>" +
"<controlId>2</controlId>" +
"</grading>";

XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);

var node = doc.DocumentElement.SelectSingleNode("//controlId").InnerText;

当我试图访问根节点内的值 2 时,它给了我值 1。我们有什么可以访问它的吗。

最佳答案

你的 XPath 表达式是

//controlId

这将找到名为controlId所有 后代。您只需要调用方法的元素的直接子元素,因此您应该使用

controlId

所以这是可行的:

var node = doc.DocumentElement.SelectSingleNode("controlId").InnerText;

但是,我强烈建议改用 LINQ to XML,作为更简洁的 XML API:

using System;
using System.Xml.Linq;

public class Program
{
public static void Main(string[] args)
{
var xml = @"
<grading>
<leap>
<controlId>1</controlId>
</leap>
<controlId>2</controlId>
</grading>";

XDocument doc = XDocument.Parse(xml);
XElement control = doc.Root.Element("controlId");
Console.WriteLine(control.Value); // 2
}
}

除非您真的想使用它的高级功能,否则我会避免使用 XPath。要仅按名称检索元素、属性等,LINQ to XML API 更简单且不易出错(如这个问题的存在所示)。

关于c# - 如何在 XML C# 中获取根级节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51650921/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com