gpt4 book ai didi

c# - 如何解析XML文件

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

我有那个格式的文件

<?xml version="1.0" encoding="UTF-8"?>
<AMG>
<Include File="..."/> <!-- comment -->
<Include File="...."/> <!-- comment -->

<AMGmers Name="Auto">
<Array Type="move" Name="move_name"/>
</AMGmers>

<AMGmers Name="Black" Parent="Auto">
<Attr Type="Color" Name="auto_Params"/>
</AMGmers>
<!-- comment -->

</AMG>

我必须从 <AMGmers> 中获取所有名称,我必须检查可用性父。我正在尝试这样做

XmlDocument doc1 = new XmlDocument();
doc1.Load("test.xml");
XmlNodeList elemList1 = doc1.GetElementsByTagName("Name");

请帮助我理解。

最佳答案

<AMG>是根节点,<AMGmers>标签在里面 <AMG> ,你可以得到所有<AMGmers>使用此语法的标签

XmlNodeList elemList1 = doc1.SelectNodes("AMG/AMGmers");

我假设您想获得 Name 的值来自所有 <AMGmers> 的属性标记并检查是否每个 <AMGmers>标签有 Parent属性,所以这段代码应该可以工作

foreach (XmlNode node in elemList1)
{
if (node.Attributes["Name"] != null)
{
string name = node.Attributes["Name"].Value;

// do whatever you want with name
}

if (node.Attributes["Parent"] != null)
{
// logic when Parent attribute is present
// node.Attributes["Parent"].Value is the value of Parent attribute
}
else
{
// logic when Parent attribute isn't present
}
}

编辑

如果你想得到<Array>内部节点 <AMGmers> , 你可以这样做

foreach (XmlNode node in elemList1)
{
XmlNodeList arrayNodes = node.SelectNodes("Array");
foreach (XmlNode arrayNode in arrayNodes)
{
if (arrayNode.Attributes["Type"] != null)
{
// logic when Type attribute is present
// arrayNode.Attributes["Type"].Value is the value of Type attribute
}
}
}

编辑 2

如果要枚举<AMGmers>里面的所有节点, 你可以这样做

foreach (XmlNode node in elemList1)
{
foreach (XmlNode childNode in node.ChildNodes)
{
// do whatever you want with childNode
}
}

关于c# - 如何解析XML文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30967385/

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