C# XML文件转换问题
我正在使用VSTS2008+C#+.NET3.5将下面的输入XML文件转换为目标格式。可以有任意数量的图像元素。列表中提供了新的价格信息 有没有快速实现转换功能的方法 源格式C# XML文件转换问题,c#,.net,xml,visual-studio-2008,C#,.net,Xml,Visual Studio 2008,我正在使用VSTS2008+C#+.NET3.5将下面的输入XML文件转换为目标格式。可以有任意数量的图像元素。列表中提供了新的价格信息 有没有快速实现转换功能的方法 源格式 <?xml version="1.0"?> <Metadata version="1"> <Owner>George</Owner> <Image> <x>100</x> </Image> <Ima
<?xml version="1.0"?>
<Metadata version="1">
<Owner>George</Owner>
<Image>
<x>100</x>
</Image>
<Image>
<x>200</x>
</Image>
</Metadata>
乔治
100
200
目的地格式
<?xml version="1.0"?>
<Metadata version="1">
<Owner>George</Owner>
<Image>
<x>100</x>
<Price>200</Price>
</Image>
<Image>
<x>100</x>
<Price>300</Price>
</Image>
</Metadata>
乔治
100
200
100
300
非常简单:选择所有
节点并向其添加新的
子节点:
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("your-filename-here.xml");
XmlNodeList imageList = xmldoc.SelectNodes("/Metadata/Image");
foreach(XmlNode node in imageList)
{
XmlElement priceElement = xmldoc.CreateElement("Price");
priceElement.InnerText = "300"; // or whatever it is
node.AppendChild(priceElement);
}
xmldoc.Save("your-new-xml-file-name-here.xml");
我希望这样就可以了
Marc非常简单:选择所有
节点并向其添加新的
子节点:
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("your-filename-here.xml");
XmlNodeList imageList = xmldoc.SelectNodes("/Metadata/Image");
foreach(XmlNode node in imageList)
{
XmlElement priceElement = xmldoc.CreateElement("Price");
priceElement.InnerText = "300"; // or whatever it is
node.AppendChild(priceElement);
}
xmldoc.Save("your-new-xml-file-name-here.xml");
我希望这样就可以了
马克我也在做同样的练习,这是一个简单的方法it@Abel:我喜欢直截了当的-我不喜欢“黑色巫术”,你看不到发生了什么:-@George2:是的,当然,像
这样的字符显然不能在XML文档的.InnerText中。您可以为这些内容使用占位符(例如
或
),或将内部文本放入
section@George2:请参阅关于该主题的另一个问题:使用XmlSerializer应该可以正常工作,是的。你可以随时检查你的字符串中那些“危险”的字符,并且只有当其中任何一个确实存在的时候才使用CDATA区域——但显然,在创建文件时这需要做更多的工作it@Abel:我喜欢直截了当的-我不喜欢“黑色巫术”如果看不到发生了什么:-)@George2:当然,像
这样的字符显然不能在XML文档的.InnerText中。您可以为这些内容使用占位符(例如
或
),或将内部文本放入
section@George2:请参阅关于该主题的另一个问题:使用XmlSerializer应该可以正常工作,是的。你可以随时检查你的字符串中那些“危险”的字符,并且只有当其中任何一个字符确实存在时才使用CDATA区域——但是显然,在创建文件时这需要做更多的工作。谢谢你的建议,马克!谢谢你的建议,马克!