Precisa de um pouco de ajuda com o Linq 2 xml
-
19-08-2019 - |
Pergunta
Eu tenho um cenário semelhante como este:
public class TestLinq2Xml
{
private XElement GenerateSomeXml()
{
return XElement.Parse(@"<MyObject>
<Properties>
<Name>My object 1</Name>
<Position>0; 0; 0</Position>
</Properties>
</MyObject>");
}
public void ExploreXmlNode()
{
var xmlTree = this.GenerateSomeXml();
var name = xmlTree.Element("MyObject").Element("Properties").Element("Name").Value;
Console.WriteLine(name);
}
}
Ok, isso é muito simplificado. .... mas ainda não vai funcionar. Algumas ideias sobre o que estou fazendo de errado aqui?
Editar:
Ah, quase esqueci. O problema é que xmlTree.Element("MyObject")
retorna uma sequência linq vazio. Mesmo que eu claramente tem um nó chamado "MyObject".
Solução
O XElement.Parse retorna um XElement que é o nó <MyObject>
. Tente: -
var name = xmlTree.Element ( "Propriedades") elemento ( "Nome") Valor;..
Outras dicas
Além do que o cartaz anterior sugeriu, você também pode retornar um XDocument de seu GenerateSomeXml () função para que as suas obras LINQ.
private static XDocument GenerateSomeXml()
{
return XDocument.Parse(@"<MyObject>
<Properties>
<Name>My object 1</Name>
<Position>0; 0; 0</Position>
</Properties>
</MyObject>");
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow