如何将 .xml 值分配给 C# 变量?

利迪

如何从此 .xml 文件中分配值

<?xml version="1.0" encoding="utf-8"?>
<root>
    <Classic>
        <value1>6</value1>
        <value2>18.7</value2>
        <value3>1</value3>
    </Classic>
</root>

到 C# 代码中的变量(整数、双精度)?例如:

int x = value1;
double y = value2;
int z = value3;

提前感谢您的答案,我已经找了很长时间了。

懒鬼

您可以使用XmlDocument加载和查询节点。如果您知道确切的节点和类型,这很有效。

有很多关于 C# 中 XML 解析的精彩文章(https://docs.microsoft.com/en-us/dotnet/standard/data/xml/),这里有一些很好的答案:C# Parsing XML File

对于您的情况,可以像这样简化解析:


    void Run()
    {
        string xml = @"<?xml version=""1.0"" encoding=""utf-8""?>
            <root>
              <Classic>
                <value1>6</value1>
                <value2>18.7</value2>
                <value3>1</value3>
              </Classic>
            </root>";
        var doc = new XmlDocument();
        doc.LoadXml(xml);

        var classicNode = doc.SelectSingleNode("/root/Classic");
        int x = int.Parse(classicNode.SelectSingleNode("value1").InnerText);
        double y = double.Parse(classicNode.SelectSingleNode("value2").InnerText);
        int z = int.Parse(classicNode.SelectSingleNode("value3").InnerText);

        Console.WriteLine($"{x}, {y}, {z}");
    }

另一种方法是使用带有XPathSelectElement扩展名的XDocument

    void Run2()
    {
        string xml = @"<?xml version=""1.0"" encoding=""utf-8""?>
            <root>
              <Classic>
                <value1>6</value1>
                <value2>18.7</value2>
                <value3>1</value3>
              </Classic>
            </root>";
        var doc = XDocument.Parse(xml);
        int x = int.Parse(doc.XPathSelectElement("root/Classic/value1").Value);
        double y = double.Parse(doc.XPathSelectElement("root/Classic/value2").Value);
        int z = int.Parse(doc.XPathSelectElement("root/Classic/value3").Value);
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将C变量的值分配给bash变量

C#中的扩展方法如何将值分配给父变量,即“ this”变量

C ++:将值分配给全局类变量

如何将CTE值分配给变量

如何通过变量 c# 将值分配给制表符

将信号的值分配给变量

将ArrayList值分配给变量

如何在Visual Studio中将URL xml响应中的值分配给变量?

C ++中的cin试图将字符串值分配给int变量?

将值分配给c中的全局变量会导致错误

无法将字符值分配给字符串变量 C++

C#使用CSV标头将值分配给不同的变量

C-尝试将函数的返回值分配给变量会导致分段错误

c# 将 for 循环中的值分配给各个变量

将值分配给Z3 C API中的bool变量

在 C 中,如果将双指针分配给值,为什么指针变量为 0?

如何将C ++向量分配给非表全局变量

如何将数组中的字符串分配给 C 中的变量(来自函数)?

c#如何将Console.WriteLine分配给变量

如何将选择结果分配给变量C#

如何将输入中的整数(如 1.2.3)分配给 C++ 中的变量?

将For Xml和With子句的结果分配给变量

无法将变量分配给C中的外部变量

将指针分配给变量vs将指针分配给C中的数组

如何使用 shell 脚本将值分配给变量

如何将敏感输出变量的值分配给环境变量?

如何将公式的值(包含变量)分配给另一个变量

将环境变量的值分配给helm变量

如何将列表中的值、用户输入的代码中的值分配给变量