我是一名中级c#程序员,需要XML文档的帮助。
我需要做以下事情:
XML文档B元素将具有不同的名称,但从文档A中提取相同的值。
有人可以帮助实现最佳设计吗?
我应该使用数据合同/序列化,我应该使用枚举来存储XML元素..........
请概述一下实现上述目标的最佳方法或直接向我介绍
答案 0 :(得分:2)
如果您要阅读XML,然后基于此创建XML,那么您可能需要考虑使用XSLT。这是一种使用XQuery和XPath将XML文档转换为新的XML文档的方法。如果您将来使用XML做这类事情,那么值得学习。
以下是代码项目教程的链接: http://www.codeproject.com/Articles/460968/XSLT-2-0-programming-basics
答案 1 :(得分:1)
我建议LINQ to XML
如果您只是将一个XML文档翻译成另一个,那么您也可以考虑编写一个XSLT来进行翻译。
答案 2 :(得分:0)
我通常使用XmlDocument
类和XPath
这是一个放置XML文档,从一个文档中获取值并将它们放在另一个文档中的示例。
XmlDocument xDoc = new XmlDocument();
xDoc.Load("filename.xml");
string val = xDoc.SelectSingleNode("//ElementName").Attributes["attributeName"].Value;
XmlDocument xDoc2 = new XmlDocument();
XmlElement ele = xDoc2.CreateElement("ElementName2");
XmlAttribute att = xDoc2.CreateAttribute("attributeName2");
att.Value = val;
ele.Attributes.Append(att);
xDoc2.AppendChild(ele);
答案 3 :(得分:0)
一些伪代码和信息。我不能具体,因为你没有提供任何信息。
1 - 使用Xml A
加载XmlDocument
。
var aDoc = new XmlDocument();
aDoc.Load("someFile.xml");
2 - 由于您说您想要一个特定节点,您可以使用xPath来提取该节点。 (xPath只是一个例子)
XmlNode extractedNode = aDoc.SelectSingleNode(/rootNode/parentNode);
3 - 现在您已将节点提取出来,将时间放入新文档bDoc
中(加载方式与aDoc
完全相同)。
XmlNode rootNode = bDoc.DocumentElement;
rootNode.AppendChild(extractedNode);
非常基本,根本不具体,但我能提出你当前的问题。