0

我尝试解析一个 XML 文件并从中收集所需的值。我有以下 XML:

<?xml version="1.0"?>
<TDXItem>
    <PROJECT_NAME name="Project_MNG_Test">
            <PROJECT_ID>1022</PROJECT_ID>
            <DOMAIN_NAME>PROJECTS_MNG</DOMAIN_NAME>
            <DB_NAME>projects_mng_project_mng_test_</DB_NAME>
    </PROJECT_NAME>
    <PROJECT_NAME name="Project_MNG_Test1">
            <PROJECT_ID>1023</PROJECT_ID>
            <DOMAIN_NAME>PROJECTS_MNG</DOMAIN_NAME>
            <DB_NAME>projects_mng_project_mng_test1_</DB_NAME>
    </PROJECT_NAME>
</TDXItem>

我尝试了很多代码,最近的代码如下:

public static void RunQuery(){
            string UserName = null;
            string xmlURI = "Sites_Name.xml";
            XDocument doc = XDocument.Load(xmlURI);
            var field = doc.Descendants("PROJECT_NAME").Where(x => (string)x.Attribute("name") == "PROJECT_MNG_Test").FirstOrDefault();
            if (field != null)
            {
        // Use value here                    
        string value = (string)field.Element("DB_NAME");

             }    
 }

但我的价值一直在变空,我尝试了很多约定俗成的工作。我知道这是我的错,但我不知道在哪里,在我的代码中或在我构建 XML 文件的方式中。

4

1 回答 1

0

您不应在此处指定命名空间,例如使用:

var field = doc.Descendants("PROJECT_NAME")
   .Where(x => (string)x.Attribute("name") == "Project_MNG_Test").FirstOrDefault();
于 2012-12-23T10:07:03.093 回答