我有以下 XElement:
<Assembly name="3">
<Component name="2" />
</Assembly>
我只想得到根元素。 <Assembly name="3">
我看不到任何适合我的方法。
XElement.????? I cant find XElement.Root;
有什么线索吗?
您可以在 VB.NET 中尝试此操作
Dim elm as XElment = XElement.Parse(<Assembly name="3">
<Component name="2" />
</Assembly>)
Dim strName as string
strName = elm.AncestorsAndSelf.First.Name
C# 中的代码
XElement elm = XElement.Parse("<Assembly name='3'><Component name='2' /></Assembly>");
string name =elm.AncestorsAndSelf().First().Name;
您可以通过以下方式获取根元素:
XDocument.Root
这是一个实现示例:
XDocument doc = new XDocument(
new XComment("This is a comment."),
new XElement("Pubs",
new XElement("Book",
new XElement("Title", "Artifacts of Roman Civilization"),
new XElement("Author", "Moreno, Jordao")
),
new XElement("Book",
new XElement("Title", "Midieval Tools and Implements"),
new XElement("Author", "Gazit, Inbar")
)
),
new XComment("This is another comment.")
);
Console.WriteLine(doc.Root.Name.ToString());
链接:http: //msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.root.aspx
您可以调用RemoveNodes
它...如果您出于其他原因需要保留原始内容,请先创建一个副本。
目前还不清楚你想用这个做什么。XElement.Root
元素在逻辑上包含它的所有子元素 -因为元素“就是它自己” ,所以没有概念。RemoveNodes
将删除所有子节点,但如果您只想获取元素的名称或其属性,则可以在不更改结构的情况下执行此操作。
将名称和属性复制到新元素;
var root = new XElement(el.Name, el.Attributes());