У меня есть файл XML, который был экспортирован из Orchard CMS. Теперь мне нужно преобразовать узлы в XML-файл в новую структуру, чтобы Я могу импортировать файл в Umbraco.Прочтите XML-файл, измените его и сохраните в виде нового форматированного XML.
Как мне это сделать? Я думаю, что я мог бы написать 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 + сообщений для конвертирования и не нужно делать это вручную.
Его определенно можно сделать. Есть много читателей xml. Один пример - http://stackoverflow.com/questions/20005211/cannot-deserialize-xml-string-with-newtonsoft-json-jsonconvert-deserializeobject –
Используйте ['xsd.exe'] (https://msdn.microsoft. com/en-us/library/x6c1kb0s% 28v = vs.110% 29.aspx) для определения классов для старого и нового XML, затем используйте ['XmlSerializer'] (https://msdn.microsoft.com/en- us/library/system.xml.serialization.xmlserializer% 28v = vs.110% 29.aspx) для загрузки старого XML, напишите код C# для сопоставления между ними, затем снова используйте 'XmlSerializer' для записи новых классов. – dbc
Или используйте Linq-to-XML, чтобы [изменить ваш XML в памяти напрямую] (https://msdn.microsoft.com/en-us/library/bb387084.aspx). – dbc