【问题标题】:How to copy XML files [closed]如何复制 XML 文件 [关闭]
【发布时间】:2014-01-20 21:14:56
【问题描述】:

我想将(元素/属性)值从一个 XML 文件复制到另一个 XML 文件,但目前我不知道该怎么做。我在文件 A 中有要复制到文件 B 的值。文件 B 或多或少具有相同的元素/属性,唯一的区别是为空。我正在采用这种方法,因为我没有两个文件的架构。

以下是文件A的内容:

<status>1</status>
  <arguments>
  <argument name="ZONE">
     <value>ZONE 1</value>
  </argument>      
  <argument name="JOB_DATES">
     <argument name="JOB_DATE">
        <value>2014-01-20</value>
     </argument>
  </argument>
  <argument name="PERSON">
     <argument name="NAME_1">
        <value>JOHN</value>
     </argument>
     <argument name="NAME_2">
        <value>SMITH</value>
     </argument>
  </argument>      
  <argument name="FIRST_SCHEDULE_JOB">
     <value>true</value>
  </argument>      
  <argument name="EMPLOYEE">
     <value>ABXX011</value>
  </argument>
</arguments>
<place placeType="JOB_SITE">
  <site>
     <street>DUKE 2</street>
     <house_name>TECH HOUSE</house_name>
     <zip>QZ12324</zip>
     <city>NYC</city>
     <province>NY</province>
     <country>USA</country>
  </site>
  <contact>
     <Name>JOHN</Name>
     <Name_1>SMITH</Name_1>
     <address>
        <street>DUKE 2</street>
        <house_name>TECH HOUSE</house_name>
        <zip>QZ12324</zip>
        <city>NYC</city>
        <province>NY</province>
        <country>USA</country>
     </address>
  </contact>      

以下是文件B的内容:

<status></status>
<arguments>
  <argument name="ZONE">
     <value></value>
  </argument>      
  <argument name="JOB_DATES">
     <argument name="JOB_DATE">
        <value></value>
     </argument>
  </argument>
  <argument name="PERSON">
     <argument name="NAME_1">
        <value></value>
     </argument>
     <argument name="NAME_2">
        <value></value>
     </argument>
  </argument>      
  <argument name="FIRST_SCHEDULE_JOB">
     <value></value>
  </argument>      
  <argument name="EMPLOYEE">
     <value></value>
  </argument>
</arguments>
<place placeType="JOB_SITE">
  <contact>
     <Name></Name>
     <Name_1></Name_1>
     <address>
        <street></street>
        <house_name></house_name>
        <zip></zip>
        <city></city>
        <province></province>
        <country></country>
     </address>
  </contact>
  <site>
     <street></street>
     <house_name></house_name>
     <zip></zip>
     <city></city>
     <province></province>
     <country></country>
  </site>            
 </place>

我想遍历文件 B 中的元素并填充文件 A 中的值,即: ZONE 元素(属性 ZONE)用 ZONE 1 值填充。

我已经尝试过使用 XMLTextReader,但到目前为止还没有运气:

while (emptyFile.Read())
{
    switch (emptyFile.NodeType)
    {
        case XmlNodeType.Element: // The node is an element.                                                        
           emptyFile.Name  = sourceFile.Name;

                         ........
     }
 }

非常感谢一些帮助

谢谢

【问题讨论】:

标签: c# xml


【解决方案1】:

“LINQ to XML”使查询和写入 XML 文件变得非常容易。看看:

http://msdn.microsoft.com/en-us/library/bb943906.aspx

http://msdn.microsoft.com/en-us/vstudio/bb688087.aspx

XElement root = XElement.Load("fileA.xml");

IEnumerable<XElement> address =
    from el in root.Elements("Address")
    where (string)el.Attribute("Type") == "Billing"
    select el;

foreach (XElement el in address)
    Console.WriteLine(el);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-12
    • 2018-06-18
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多