读取XML文件,更改它并将其另存为新格式的XML

时间:2015-04-02 21:07:30

标签: c# xml

我有一个从Orchard CMS导出的XML文件,我现在需要做的是将XML文件中的节点转换为新结构,以便我可以将文件导入到Umbraco中。

我该怎么做呢?我想我可以编写一些c#.net来读取XML文件,然后进行我需要的更改,然后将其作为新文件。

我想要做的例子是:

导出的文件:

<BlogPost Id="/alias=The Blog\/2012\/09\/10\/on-starters-orders" Status="Published">
  <TextField.Excerpt />
  <TaxonomyField.Categories Terms="" />
  <TaxonomyField.Tags Terms="" />
  <BodyPart Text="MAIN CONTENT OF THE BLOG POST"
  />
  <CommonPart Owner="/User.UserName=Owain" Container="/alias=blog" CreatedUtc="2012-09-10T13:27:00Z" PublishedUtc="2012-09-25T08:57:25Z" ModifiedUtc="2012-09-25T08:56:15Z" />
  <AutoroutePart Alias="The Blog/2012/09/10/on-starters-orders" UseCustomPattern="false" />
  <TitlePart Title="On starters orders....." />
  <CommentsPart CommentsShown="true" CommentsActive="true" ThreadedComments="false" />
  <TagsPart Tags="" />
</BlogPost>

我需要将其转换为:

 <posts>
    <post id="1" date-created="2012-09-25T08:57:25Z" date-modified="2012-09-25T08:56:15Z" approved="true" post-url="on-starters-orders" type="normal" hasexcerpt="false" views="0" is-published="True">
      <title type="text"><![CDATA[On starters orders.....]]></title>
      <content type="text"><![CDATA[MAIN CONTENT OF THE BLOG POST]]>
 </content>
  <post-name type="text"><![CDATA[On starters orders.....]]></post-name>
   <categories>
        <category ref="1018" />
      </categories>
       <tags>
        <tag ref="training" />
      </tags>
       <comments>
        <comment id="35" date-created="2006-09-05T11:36:50" date-modified="2006-09-05T11:36:50" approved="false" user-name="Phil Haack" user-url="http://haacked.com">
          <title type="text"><![CDATA[re: CS Dev Guide: Send Emails]]></title>
          <content type="text"><![CDATA[Another test comment.]]></content>
        </comment>
      </comments>
      <authors>
        <author ref="Owain" />
      </authors>
    </post>

寻找有关最佳方法的建议,因为我有150多个帖子可以转换,并且不喜欢手动操作。

1 个答案:

答案 0 :(得分:0)

您可以使用XSLT转换,它有很多选项可以满足您的需求。 XSLT可以输出xml。