[英]Need a little help with Linq 2 xml
I have a similar scenario as this one: 我有与此类似的情况:
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, this is very simplified. 好的,这非常简化。 ....but it still wont work.
....但仍然无法正常工作。 Any ideas on what I'm doing wrong here?
对我在这里做错的任何想法吗?
Edit: 编辑:
Oh, almost forgot. 哦,差点忘了。 The problem is that
xmlTree.Element("MyObject")
returns an empty linq sequence. 问题是
xmlTree.Element("MyObject")
返回一个空的linq序列。 Even though I clearly have a node named "MyObject". 即使我显然有一个名为“ MyObject”的节点。
The XElement.Parse returns an XElement which is the <MyObject>
node. XElement.Parse返回一个XElement,它是
<MyObject>
节点。 Try:- 尝试:-
var name = xmlTree.Element("Properties").Element("Name").Value; var name = xmlTree.Element(“ Properties”)。Element(“ Name”)。Value;
Besides what the previous poster suggested, you can also return an XDocument from your GenerateSomeXml() function so that your linq works. 除了前面的建议,您还可以从GenerateSomeXml()函数返回一个XDocument,以便linq可以工作。
private static XDocument GenerateSomeXml()
{
return XDocument.Parse(@"<MyObject>
<Properties>
<Name>My object 1</Name>
<Position>0; 0; 0</Position>
</Properties>
</MyObject>");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.