无法获取xml节点的值

本文关键字:节点 xml 获取 | 更新日期: 2023-09-27 18:14:12

我有一个XML文件:

 <?xml version="1.0" encoding="utf-8"?>
<Projects>
<Project>
    <Name>CELL</Name>
    <FunctionList>
        <Function>guildline_addproperties</Function>
        <Function>guildline_emptylaunchcondition</Function>
        <Function>msi_setvolumelabel</Function>
    </FunctionList>
</Project>
<Project>
    <Name>AXA</Name>
    <FunctionList>
        <Function>guildline_addproperties</Function>
        <Function>guildline_emptylaunchcondition</Function>
        <Function>msi_setvolumelabel</Function>
    </FunctionList>
</Project>  
</Projects>
我的代码是:
string fileFolderpath = Path.GetDirectoryName(Application.ExecutablePath) + "''Config";
XmlDocument xDoc = new XmlDocument();
xDoc.Load(fileFolderpath + @"'FunctionTemplate.xml");
XmlNodeList xNode = xDoc.SelectNodes(String.Format("/Projects/Project [Name='{0}']/FunctionList/Function", "CELL"));

我的节点列表运行后没有项。我的代码有什么问题吗?

无法获取xml节点的值

我将使用LINQ to XML:

var xmlDocument = XDocument.Load("path");
var project = xmlDocument.Root
             .Elements("Project")
             .FirstOrDefault(p => (string)p.Element("Name") == "CELL");
if(project != null)
{
   var functions = project.Descendants("Function");
}

下面是我的工作:

var xml = @"<Projects>
<Project>
    <Name>CELL</Name>
    <FunctionList>
        <Function>guildline_addproperties</Function>
        <Function>guildline_emptylaunchcondition</Function>
        <Function>msi_setvolumelabel</Function>
    </FunctionList>
</Project>
<Project>
    <Name>AXA</Name>
    <FunctionList>
        <Function>guildline_addproperties</Function>
        <Function>guildline_emptylaunchcondition</Function>
        <Function>msi_setvolumelabel</Function>
    </FunctionList>
</Project>  
</Projects>";
             XmlDocument xDoc = new XmlDocument();
             xDoc.LoadXml(xml);
             XmlNodeList xNode = xDoc.SelectNodes(String.Format(@"/Projects/Project[Name='{0}']/FunctionList/Function", "CELL"));
             Assert.AreEqual(3, xNode.Count);

您确定正在正确加载文件吗?