C# 如何从C中获取xml标记值

C# 如何从C中获取xml标记值,c#,asp.net,C#,Asp.net,我有一个xml名称为recipe.xml 在这种情况下,可能最容易使用来查找您要查找的项目。您可以将其转换为使用节名和项名作为参数的函数 大概是这样的: var templatePath=xml.DocumentElement?.SelectSingleNode/sections/section[@name='Template']/item[@key='validateTemplate']/@value?.value; 或者使用它来选择所有部分。项目: xml.DocumentElement.S

我有一个xml名称为recipe.xml


在这种情况下,可能最容易使用来查找您要查找的项目。您可以将其转换为使用节名和项名作为参数的函数

大概是这样的:

var templatePath=xml.DocumentElement?.SelectSingleNode/sections/section[@name='Template']/item[@key='validateTemplate']/@value?.value; 或者使用它来选择所有部分。项目:

xml.DocumentElement.SelectNodes/sections/section/item中的foreach XmlNode项 { Console.WriteLine${item.ParentNode.Attributes[name]?.Value}.{item.Attributes[key]?.Value}\t{item.Attributes[Value]?.Value}; }
在这种情况下,可能最容易使用来查找您要查找的项目。您可以将其转换为使用节名和项名作为参数的函数

大概是这样的:

var templatePath=xml.DocumentElement?.SelectSingleNode/sections/section[@name='Template']/item[@key='validateTemplate']/@value?.value; 或者使用它来选择所有部分。项目:

xml.DocumentElement.SelectNodes/sections/section/item中的foreach XmlNode项 { Console.WriteLine${item.ParentNode.Attributes[name]?.Value}.{item.Attributes[key]?.Value}\t{item.Attributes[Value]?.Value}; }
要使GetElementById工作,必须知道哪个属性作为ID工作。这可以通过DTD或XSD完成。请参阅此处的备注部分:您还可以使用属性值并使用或获取节点。无论如何,如果没有找到满足搜索条件的元素,您应该包括针对NullReferenceException的防御措施。@KlausGütter嗨,我可以从您那里得到更多信息吗,我不知道DTD和XSD可以在哪里设置。XPath示例:var node=xml.DocumentElement.SelectSingleNode//item[@key='validateTemplate']/@value;MessageBox.Shownode?值??未找到;此异常仅供参考:要使GetElementById工作,必须知道哪个属性作为ID工作。这可以通过DTD或XSD完成。请参阅此处的备注部分:您还可以使用属性值并使用或获取节点。无论如何,如果没有找到满足搜索条件的元素,您应该包括针对NullReferenceException的防御措施。@KlausGütter嗨,我可以从您那里得到更多信息吗,我不知道DTD和XSD可以在哪里设置。XPath示例:var node=xml.DocumentElement.SelectSingleNode//item[@key='validateTemplate']/@value;MessageBox.Shownode?值??未找到;此例外情况的供参考:
<sections>
<section name="Template">
<item key="SkipTemplates" value="C:/Temp/skip.xm;" />
<item key="validateTemplate" value="C:/Temp/validate.xml" />
<item key="PassTemplate" value="C:/Temp/pass.xml" />
</section>
<section name="Version">
<item key="MenuTemplate" value="C:/TempVersion/menu.xml" />
<item key="PassTemplate" value="C:/TempVersion/pass.xml" />
<item key="SkipTemplate" value="C:/TempVersion/skip.xml" />
</section>
</sections>
XmlDocument xml = new XmlDocument();
xml.Load("C:/Mani/recipe.xml");
XmlElement directoryElement = xml.GetElementById("validateTemplate");
string backupPath = directoryElement.GetAttribute("value");
MessageBox.Show(backupPath.ToString());