Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用LINQ到xml访问xml元素_C#_Linq_Linq To Xml - Fatal编程技术网

C# 使用LINQ到xml访问xml元素

C# 使用LINQ到xml访问xml元素,c#,linq,linq-to-xml,C#,Linq,Linq To Xml,我有一个这样的xml文档,需要访问“employees”、“employee”元素,所以我尝试使用linq的XDocument类来获取employee元素,但它总是返回空值 示例xml: <organization> <metadata> </metadata> <main> <otherInfo> </otherInfo> <employeeInfo>

我有一个这样的xml文档,需要访问“employees”、“employee”元素,所以我尝试使用linq的XDocument类来获取employee元素,但它总是返回空值

示例xml:

<organization>
   <metadata>
   </metadata>
   <main>
     <otherInfo>
     </otherInfo>
     <employeeInfo>
      <employees>
        <employee>
           <id>1</id>
           <name>ABC</name>
        </employee>
        <employee>
           <id>2</id>
           <name>ASE</name>
        </employee>
        <employee>
           <id>3</id>
           <name>XYZ</name>
        </employee>
      </employees>
     </employeeInfo>
    </main>
</organization>

这取决于你需要什么样的信息。您的选择返回一个IEnumerable列表。 此代码将打印出每个员工

string xmlString = @"<organization>
                           <metadata>
                           </metadata>
                           <main>
                             <otherInfo>
                             </otherInfo>
                             <employeeInfo>
                              <employees>
                                <employee>
                                   <id>1</id>
                                   <name>ABC</name>
                                </employee>
                                <employee>
                                   <id>2</id>
                                   <name>ASE</name>
                                </employee>
                                <employee>
                                   <id>3</id>
                                   <name>XYZ</name>
                                </employee>
                              </employees>
                             </employeeInfo>
                            </main>
                        </organization>";

        XDocument xDoc = XDocument.Parse(xmlString);
        var allEmployees = from d in xDoc.Descendants("employeeInfo")
           from ms in d.Elements("employees")                                   
           from m in ms.Elements("employee")
           select m;

        foreach (var emp in allEmployees) {
            Console.WriteLine(emp);
        }
        Console.Read();
string xmlString=@”
1.
基础知识
2.
ASE
3.
XYZ
";
XDocument xDoc=XDocument.Parse(xmlString);
var allEmployees=来自xDoc.substands(“employeeInfo”)中的d
来自d.Elements女士(“员工”)
来自ms.Elements中的m(“员工”)
选择m;
foreach(所有员工中的var emp){
控制台写入线(emp);
}
Console.Read();

这取决于你需要什么样的信息。您的选择返回一个IEnumerable列表。 此代码将打印出每个员工

string xmlString = @"<organization>
                           <metadata>
                           </metadata>
                           <main>
                             <otherInfo>
                             </otherInfo>
                             <employeeInfo>
                              <employees>
                                <employee>
                                   <id>1</id>
                                   <name>ABC</name>
                                </employee>
                                <employee>
                                   <id>2</id>
                                   <name>ASE</name>
                                </employee>
                                <employee>
                                   <id>3</id>
                                   <name>XYZ</name>
                                </employee>
                              </employees>
                             </employeeInfo>
                            </main>
                        </organization>";

        XDocument xDoc = XDocument.Parse(xmlString);
        var allEmployees = from d in xDoc.Descendants("employeeInfo")
           from ms in d.Elements("employees")                                   
           from m in ms.Elements("employee")
           select m;

        foreach (var emp in allEmployees) {
            Console.WriteLine(emp);
        }
        Console.Read();
string xmlString=@”
1.
基础知识
2.
ASE
3.
XYZ
";
XDocument xDoc=XDocument.Parse(xmlString);
var allEmployees=来自xDoc.substands(“employeeInfo”)中的d
来自d.Elements女士(“员工”)
来自ms.Elements中的m(“员工”)
选择m;
foreach(所有员工中的var emp){
控制台写入线(emp);
}
Console.Read();

这取决于你需要什么样的信息。您的选择返回一个IEnumerable列表。 此代码将打印出每个员工

string xmlString = @"<organization>
                           <metadata>
                           </metadata>
                           <main>
                             <otherInfo>
                             </otherInfo>
                             <employeeInfo>
                              <employees>
                                <employee>
                                   <id>1</id>
                                   <name>ABC</name>
                                </employee>
                                <employee>
                                   <id>2</id>
                                   <name>ASE</name>
                                </employee>
                                <employee>
                                   <id>3</id>
                                   <name>XYZ</name>
                                </employee>
                              </employees>
                             </employeeInfo>
                            </main>
                        </organization>";

        XDocument xDoc = XDocument.Parse(xmlString);
        var allEmployees = from d in xDoc.Descendants("employeeInfo")
           from ms in d.Elements("employees")                                   
           from m in ms.Elements("employee")
           select m;

        foreach (var emp in allEmployees) {
            Console.WriteLine(emp);
        }
        Console.Read();
string xmlString=@”
1.
基础知识
2.
ASE
3.
XYZ
";
XDocument xDoc=XDocument.Parse(xmlString);
var allEmployees=来自xDoc.substands(“employeeInfo”)中的d
来自d.Elements女士(“员工”)
来自ms.Elements中的m(“员工”)
选择m;
foreach(所有员工中的var emp){
控制台写入线(emp);
}
Console.Read();

这取决于你需要什么样的信息。您的选择返回一个IEnumerable列表。 此代码将打印出每个员工

string xmlString = @"<organization>
                           <metadata>
                           </metadata>
                           <main>
                             <otherInfo>
                             </otherInfo>
                             <employeeInfo>
                              <employees>
                                <employee>
                                   <id>1</id>
                                   <name>ABC</name>
                                </employee>
                                <employee>
                                   <id>2</id>
                                   <name>ASE</name>
                                </employee>
                                <employee>
                                   <id>3</id>
                                   <name>XYZ</name>
                                </employee>
                              </employees>
                             </employeeInfo>
                            </main>
                        </organization>";

        XDocument xDoc = XDocument.Parse(xmlString);
        var allEmployees = from d in xDoc.Descendants("employeeInfo")
           from ms in d.Elements("employees")                                   
           from m in ms.Elements("employee")
           select m;

        foreach (var emp in allEmployees) {
            Console.WriteLine(emp);
        }
        Console.Read();
string xmlString=@”
1.
基础知识
2.
ASE
3.
XYZ
";
XDocument xDoc=XDocument.Parse(xmlString);
var allEmployees=来自xDoc.substands(“employeeInfo”)中的d
来自d.Elements女士(“员工”)
来自ms.Elements中的m(“员工”)
选择m;
foreach(所有员工中的var emp){
控制台写入线(emp);
}
Console.Read();
只需使用
后代(“员工”)

只需使用
子代(“员工”)

只需使用
子代(“员工”)

只需使用
子代(“员工”)


事实上,我在xml文件的根节点中有一个xmlns,我在这里没有指定,所以您能告诉我当有可用名称空间时如何访问子元素吗?您能给我举个例子吗?我在提供的示例xml中遗漏了名称空间(即xmlns=“),因此我更改了