C# 如何创建这样的xml层次结构?
我想创建动态XML层次结构,但仍然没有成功。我尝试了LinqToXml类和XML类,但仍然没有成功。我想动态地在循环中创建这样一个层次结构 创建根节点C# 如何创建这样的xml层次结构?,c#,.net,xml,linq-to-xml,C#,.net,Xml,Linq To Xml,我想创建动态XML层次结构,但仍然没有成功。我尝试了LinqToXml类和XML类,但仍然没有成功。我想动态地在循环中创建这样一个层次结构 创建根节点 <Root></Root> 如果我理解正确,您希望创建XML元素,然后返回并添加附加的子元素。您可能想看看如何使用该类来实现这一点 使用XElement还可以按如下方式执行此操作 XElement root = new XElement("Root"); XElement biggest = new XEleme
<Root></Root>
如果我理解正确,您希望创建XML元素,然后返回并添加附加的子元素。您可能想看看如何使用该类来实现这一点 使用XElement还可以按如下方式执行此操作
XElement root = new XElement("Root");
XElement biggest = new XElement("Biggest");
XElement bigger = new XElement("Bigger");
XElement another = new XElement("Another");
root.Add(biggest);
biggest.Add(bigger);
biggest.Add(another);
在这里,每个步骤都会添加到层次结构中,但在每个中间步骤中,层次结构都是有效的XML
更新:
根据评论中的问题,我认为这就是你想要的
root.Add(biggest);
root.Element("Biggest").Add(bigger);
root.Element("Biggest").Add(another);
如果我理解正确,您希望创建XML元素,然后返回并添加附加的子元素。您可能想看看如何使用该类来实现这一点 使用XElement还可以按如下方式执行此操作
XElement root = new XElement("Root");
XElement biggest = new XElement("Biggest");
XElement bigger = new XElement("Bigger");
XElement another = new XElement("Another");
root.Add(biggest);
biggest.Add(bigger);
biggest.Add(another);
在这里,每个步骤都会添加到层次结构中,但在每个中间步骤中,层次结构都是有效的XML
更新:
根据评论中的问题,我认为这就是你想要的
root.Add(biggest);
root.Element("Biggest").Add(bigger);
root.Element("Biggest").Add(another);
您可以直接创建xml结构:
XElement root = new XElement("root",
new XElement("first", "value",
new XElement("second", "Value")));
使用各种方法(如Element
)遍历节点:
root.Element("first").Element("second").Add(new XElement("third", "Value"));
//or
root.Descendants("second").First().Add(new XElement("underTheThird", "Value"));
添加到任何元素:
root.Add(new XElement("underTheSecond", 456));
等等
Microsoft有几个文档可供阅读,例如
编辑-收集我在评论中发布的信息:
您可以执行root.Add(首先)代码>首先,然后先执行。添加(第二)代码>。你这样做的顺序并不重要。Xml文档不是像字符串一样构建的,它是对象的层次结构-您可以在树中的任何位置添加新节点
Add使用对象作为参数(与元素构造函数相同)。您可以添加任何XObject
(可以添加)和任何其他可转换为XText
(字符串、数字等-主要使用XmlConvert
)的对象
Freshblood:我认为XmlLinkedNode类提供了我需要的东西。
您可以使用NextNode
或PreviousNode
属性获取兄弟节点,使用Parent
属性获取当前节点的父节点
尽管所有这些信息都可以通过我在回答中发布的链接访问。您可以直接创建xml结构:
XElement root = new XElement("root",
new XElement("first", "value",
new XElement("second", "Value")));
使用各种方法(如Element
)遍历节点:
root.Element("first").Element("second").Add(new XElement("third", "Value"));
//or
root.Descendants("second").First().Add(new XElement("underTheThird", "Value"));
添加到任何元素:
root.Add(new XElement("underTheSecond", 456));
等等
Microsoft有几个文档可供阅读,例如
编辑-收集我在评论中发布的信息:
您可以执行root.Add(首先)代码>首先,然后先执行。添加(第二)代码>。你这样做的顺序并不重要。Xml文档不是像字符串一样构建的,它是对象的层次结构-您可以在树中的任何位置添加新节点
Add使用对象作为参数(与元素构造函数相同)。您可以添加任何XObject
(可以添加)和任何其他可转换为XText
(字符串、数字等-主要使用XmlConvert
)的对象
Freshblood:我认为XmlLinkedNode类提供了我需要的东西。
您可以使用NextNode
或PreviousNode
属性获取兄弟节点,使用Parent
属性获取当前节点的父节点
虽然所有这些信息都可以通过我在回答中发布的链接访问。不知道是否有帮助,但我发现这个家伙的网站对处理xml文件非常有用
如果您使用它,请确保将所有实例包装在using中。。这是一个很难解决的问题。不知道它是否有用,但我发现这个家伙的网站对处理xml文件非常有用
如果您使用它,请确保将所有实例都包装在using中。。找到了困难的解决方法。似乎很简单。你有什么问题?你到底想做什么?这种结构看起来根本不需要一个循环。您是否对创建的元素使用Add
方法?有一种递归方法,我想将值树放入一个XML文件中。你可以给出一个例子,如何在树层次结构中导航并添加子元素先编码>然后先执行。添加(第二个)
。你这样做的顺序并不重要。Xml文档不是像字符串一样构建的,它是对象的层次结构-您可以在树中的任何位置添加新节点。@Freshblood:add
使用对象作为参数(与元素构造函数相同)。您可以添加任何XObject
(可以添加)和任何其他可转换为XText
(字符串、数字,…-主要使用XmlConvert
)的对象。看起来很简单。你有什么问题?你到底想做什么?这种结构看起来根本不需要一个循环。您是否对创建的元素使用Add
方法?有一种递归方法,我想将值树放入一个XML文件中。你可以给出一个例子,如何在树层次结构中导航并添加子元素先编码>然后先执行。添加(第二个)
。你这样做的顺序并不重要。Xml文档不是像字符串一样构建的,它是对象的层次结构-您可以在树中的任何位置添加新节点。@Freshblood:add
使用对象作为参数(与元素构造函数相同)。您可以添加任何XObject
(可以添加)和任何其他可转换为XText
(字符串、数字,…-主要使用XmlConvert
)的对象。是否可以在不使用过大引用的情况下将较大的对象添加到最大值?我的意思是用rootreferance@Freshblood,我补充了一个我认为你要求的例子。如果我误解了,请告诉我。我无法很好地解释我的问题。