我想将包含节点内的许多元素(大约150个)的XML文档转换为另一个XML文档,该文档具有略微不同的模式,但大多数具有相同的元素名称.现在我必须手动映射两个文档之间的每个元素/节点.为此,我将不得不硬编码150行映射和元素名称.像这样的东西:
XElement newOrder = new XElement("Order"); newOrder.Add(new XElement("OrderId", (string)oldOrder.Element("OrderId")), newOrder.Add(new XElement("OrderName", (string)oldOrder.Element("OrderName")), ............... ............... ...............and so on
newOrder文档可能包含其他节点,如果在oldOrder中找不到任何节点,则这些节点将设置为null.那么除了硬编码150个元素名称(如orderId,orderName等)之外,我还有其他选择......还是有一些更好的可维护方式?
请改用XSLT转换.您可以使用内置的.NET XslCompiledTransform进行转换.使您免于输入堆栈代码.如果你还不知道XSL/XSLT,那么学习它就会让你自己知道:)
祝好运!