Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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# 当特定的XML节点具有特定值时,如何读取整个XML节点_C#_Xml_Linq - Fatal编程技术网

C# 当特定的XML节点具有特定值时,如何读取整个XML节点

C# 当特定的XML节点具有特定值时,如何读取整个XML节点,c#,xml,linq,C#,Xml,Linq,我怎样才能做一个foreach,在那里我可以只读取XML标签Equipe在哪里等于Rest 这是一个例子: <Equipe> <CPFUsuario>5546</CPFUsuario> <CodUsuario>6536</CodUsuario> <ApelidoUsuario>PARREIRA.MG</ApelidoUsuario> <NomeCompletoUsuario&

我怎样才能做一个
foreach
,在那里我可以只读取
XML
标签
Equipe
在哪里
等于
Rest

这是一个例子:

<Equipe>
    <CPFUsuario>5546</CPFUsuario>
    <CodUsuario>6536</CodUsuario>
    <ApelidoUsuario>PARREIRA.MG</ApelidoUsuario>
    <NomeCompletoUsuario>JORGE</NomeCompletoUsuario>
    <CodAgenciaLopesnet>15513</CodAgenciaLopesnet>
    <DesAgenciaLopesnet>MINAS GERAIS LTDA.</DesAgenciaLopesnet>
    <DesFilialnet>Rest</DesFilialLopesnet>
    <CodEquipe>584309</CodEquipe>
    <CodEquipeNovo>597951</CodEquipeNovo>
    <DesEquipe>CARLOSMG</DesEquipe>
    <CodEquipeSecundaria />
    <CodEquipeSecundariaNovo />
    <DesEquipeSecundaria />
    <CodFilialSiebelPronto></CodFilialSiebelPronto>
    <GrupoAcesso>1</GrupoAcesso>
</Equipe>
然后给出XML:

<Test>
    <Equipe>
        <CPFUsuario>5546</CPFUsuario>
        <CodUsuario>6536</CodUsuario>
        <ApelidoUsuario>PARREIRA.MG</ApelidoUsuario>
        <NomeCompletoUsuario>JORGE</NomeCompletoUsuario>
        <CodAgenciaLopesnet>15513</CodAgenciaLopesnet>
        <DesAgenciaLopesnet>MINAS GERAIS LTDA.</DesAgenciaLopesnet>
        <DesFilialnet>Rest</DesFilialnet>
        <CodEquipe>584309</CodEquipe>
        <CodEquipeNovo>597951</CodEquipeNovo>
        <DesEquipe>CARLOSMG</DesEquipe>
        <CodEquipeSecundaria />
        <CodEquipeSecundariaNovo />
        <DesEquipeSecundaria />
        <CodFilialSiebelPronto></CodFilialSiebelPronto>
        <GrupoAcesso>1</GrupoAcesso>
    </Equipe>
    <Equipe>
        <CPFUsuario>5546</CPFUsuario>
        <CodUsuario>6536</CodUsuario>
        <ApelidoUsuario>PARREIRA.MG</ApelidoUsuario>
        <NomeCompletoUsuario>JORGE</NomeCompletoUsuario>
        <CodAgenciaLopesnet>15513</CodAgenciaLopesnet>
        <DesAgenciaLopesnet>MINAS GERAIS LTDA.</DesAgenciaLopesnet>
        <DesFilialnet>not rest</DesFilialnet>
        <CodEquipe>584309</CodEquipe>
        <CodEquipeNovo>597951</CodEquipeNovo>
        <DesEquipe>CARLOSMG</DesEquipe>
        <CodEquipeSecundaria />
        <CodEquipeSecundariaNovo />
        <DesEquipeSecundaria />
        <CodFilialSiebelPronto></CodFilialSiebelPronto>
        <GrupoAcesso>1</GrupoAcesso>
    </Equipe>
</Test>
现在,您可以在生成的
IEnumerable
上执行
foreach
循环:

当然,这需要使用Linq和以下
语句:

using System.Xml.Linq;
using System.Linq;
var equipes = XDocument.Parse(xml)
                       .Elements("Test")
                       .Elements("Equipe")
                       .Where(e => e.Element("DesFilialnet")
                       .Value.ToUpperInvariant() == "Rest".ToUpperInvariant());
foreach (var xElement in equipes)
        {
           //Do something
        }
using System.Xml.Linq;
using System.Linq;