C# 需要将Xml数据附加到每个
我需要将xml数据附加到xmldocument对象。我的代码是这样的C# 需要将Xml数据附加到每个,c#,xml,C#,Xml,我需要将xml数据附加到xmldocument对象。我的代码是这样的 <products> <product> <id>1</id> <price>15</price> </product> <product> <id>2</id> <price>30</price> </product> </products> publi
<products>
<product>
<id>1</id>
<price>15</price>
</product>
<product>
<id>2</id>
<price>30</price>
</product>
</products>
public xmlDocument Getdate(字符串s)
{ ...
回程
}
_prod=新的XmlDocument();
字符串[]sn={“第一”,“第二”}
foreach(序列号中的字符串s)
{
_prod=获取数据;
//需要代码将第二个循环添加到xmldocument对象“\u prod”
}
第一个xml数据是:
<products>
<product>
<id>1</id>
<price>15</price>
</product>
</products>
<products>
<product>
<id>2</id>
<price>30</price>
</product>
</products>
1.
15
第二个xml数据是:
<products>
<product>
<id>1</id>
<price>15</price>
</product>
</products>
<products>
<product>
<id>2</id>
<price>30</price>
</product>
</products>
2.
30
我希望最终的xml对象_prod(每个都在内部)如下所示
<products>
<product>
<id>1</id>
<price>15</price>
</product>
<product>
<id>2</id>
<price>30</price>
</product>
</products>
1.
15
2.
30
请建议一种可能的方法,假设您可以合并2个以上的XML文档:
_prod = new XmlDocument();
string[] sn = {"first", "second", "third"}
foreach(int i=0; i<sn.Length; i++)
{
//build _prod based on the first XML
if(i==0) _prod = Getdata(sn[i]);
//then from next XMLs, add <product> nodes as child of _prod's <products>
else
{
var _temp = Getdata(sn[i]);
//select <products> node from _prod
var product = _prod.SelectSingleNode("//products");
//select <product> nodes to be appended to _prod
var products = _temp.SelectNodes("//products/product");
foreach(XmlNode p in products)
{
product.AppendChild(p);
}
}
}
\u prod=new XmlDocument();
字符串[]sn={“第一”、“第二”、“第三”}
foreach(inti=0;i是否可以改用linqtoxml,一次性构建整个XML?
大概是这样的:
var products = new XElement(
"products",
new string[] {"first", "second"}
.Select(s =>
{
var data = GetData(s);
return new XElement(
"product",
new XElement("id", data.Id),
new XElement("price", data.Price));
}));
var xmlString = products.ToString();
但我需要将子节点附加到“_prod”对象,而不是“product”对象.\u prod
对象保存整个XML文档。您希望在\u prod
对象中附加子节点的位置?我想是在\u prod
对象中的/code>节点中。我不确定我是否遵循。在上面的代码中,您将子数据附加到var(产品)中。此对象最终将拥有整个xml文档。如果是,我希望整个文档位于“\u prod”中这是xml文档对象而不是xml节点。product
是\u prod
的一部分,添加到product
将最终更改\u prod
中存储的整个xml。!!非常感谢。!!可以。但是,我在根节点下有许多标记。将它们全部作为元素编写会很繁琐