.net 在这种情况下如何使用Xelement
我必须获得这种xml:.net 在这种情况下如何使用Xelement,.net,xml,xml-serialization,xelement,xml-deserialization,.net,Xml,Xml Serialization,Xelement,Xml Deserialization,我必须获得这种xml: <ps> <pr> <name>name1</name> <comp> <type>CB</type> <attr> <value>0</value> </attr> </com
<ps>
<pr>
<name>name1</name>
<comp>
<type>CB</type>
<attr>
<value>0</value>
</attr>
</comp>
</pr>
<sep>sep1</sep>
<pr>
<name>name2</name>
<comp>
<type>RB</type>
<attr>
<value>1</value>
</attr>
</comp>
</pr>
<sep>sep2</sep>
<pr>
<name>name3</name>
<comp>
<type>CoM</type>
<attr>
<value>2</value>
</attr>
</comp>
</pr>
<sep>sep3</sep>
</ps>
但是这段代码并没有给出我想要的序列。它在xml中首先显示所有sep,然后是ps(不按顺序)
我使用XElement实现了它,但它是静态的,不使用我的类对象,如“Name”、“Comp”、Type、Value等。
是这样的:
var el = new XElement("ps",
new XElement("pr",
new XElement("name", "name1"),
new XElement("comp",
new XElement("type", "CB"),
new XElement("attr",
new XElement("value", 0)
)
)
),//And so on..
所以它根本不使用类对象。我们给她分配了类似于XElement(“name”,“name1”)的元素,但我想要这样的东西ps Object1=new ps()
和Object1.pr[0].Name=“name1”代码>
如何实现这一点,它应该保持ps
和sep
的相同顺序?“在我使用xmlement
之前”-你是说XmlSerializer
?(xmlement
不会那样做;XmlSerializer
会这样做)@marcGravel不,我已经用XmlSerializer做了。它一起显示所有sep和所有pr。我想让它们按顺序排列,但我找不到必须使用XElement来完成。我用代码的第二部分进行了尝试,但游标没有在这个循环中输入foreach(pc.Pr中的var param){here},因为Pr里面没有任何内容。那么如何使用XElement实现它呢?@user234839当面对现实时,你想做什么在很大程度上是无关紧要的(除非你自愿编写一个序列化库来弥补这两件事之间的差距);如果你想使用对象模型,你基本上是在做序列化——我们已经知道这并不能实现你想要的输出。所以:别提了。相反,您必须直接构建xml模型。我已经就同一个话题进行了3到5次对话,但最终你将不得不在这里做腿部工作。我不能自愿为你写。@user234839不,我认为这不是一个合适的解决方案;我已经给了你我的建议:构造和解析DOM。我已经向你展示了如何。我不确定你到底想要什么,但再说一次:我不会简单地为你写整件事。
var el = new XElement("ps",
new XElement("pr",
new XElement("name", "name1"),
new XElement("comp",
new XElement("type", "CB"),
new XElement("attr",
new XElement("value", 0)
)
)
),//And so on..