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");

             }    
 }

しかし、私の値は常にnullになっています。私は仕事に注意する多くの慣習を試しました。それが私の悪いことであることはわかっていますが、コードのどこにあるのか、または 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 に答える