Linq 2 xmlで少し助けが必要
-
19-08-2019 - |
質問
これと似たシナリオがあります:
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);
}
}
わかりました、これは非常に単純化されています。 ....しかし、まだ機能しません。ここで私が間違っていることについてのアイデアはありますか?
編集:
ああ、ほとんど忘れていました。問題は、xmlTree.Element("MyObject")
が空のlinqシーケンスを返すことです。明らかに<!> quot; MyObject <!> quot;という名前のノードがありますが。
解決
XElement.Parseは、<MyObject>
ノードであるXElementを返します。試してください:-
var name = xmlTree.Element(<!> quot; Properties <!> quot;)。Element(<!> quot; Name <!> quot;)。Value;
他のヒント
前のポスターが示唆したものに加えて、linqが機能するようにGenerateSomeXml()関数からXDocumentを返すこともできます。
private static XDocument GenerateSomeXml()
{
return XDocument.Parse(@"<MyObject>
<Properties>
<Name>My object 1</Name>
<Position>0; 0; 0</Position>
</Properties>
</MyObject>");
}
所属していません StackOverflow