我有以下XElement:
<Assembly name="3">
<Component name="2" />
</Assembly>
我想获得根元素。 <Assembly name="3">
我无法看到任何适合我的方法。
XElement.????? I cant find XElement.Root;
有任何线索吗?
答案 0 :(得分:3)
你可以在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;
答案 1 :(得分:1)
您可以在其上调用RemoveNodes
...如果您因其他原因需要保留原始内容,请先创建副本。
目前还不清楚你要做的是什么。该元素在逻辑上包含其所有子元素 - 没有XElement.Root
的概念,因为元素“本身”。 RemoveNodes
将删除所有子节点,但如果您只想获取元素的名称或其属性,则可以在不更改结构的情况下执行此操作。
答案 2 :(得分:0)
这可能是一种方式:
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());
link:http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.root.aspx
答案 3 :(得分:0)
复制名称&amp;属性为新元素;
var root = new XElement(el.Name, el.Attributes());