Добавление ответа к Rajs, вот как вы можете сделать это с помощью Transform:
Код
XmlTextReader reader = new XmlTextReader("C:\\fileOri.xml");
XmlTextWriter writer = new XmlTextWriter("C:\\fileDes.xml", Encoding.UTF8);
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load("C:\\MyStylesheet.xslt");
transform.Transform(reader, writer);
Таблица стилей
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<!-- define the root element for your destination document -->
<xsl:element name="root">
<xsl:apply-templates />
</xsl:element>
</xsl:template>
<xsl:template match="//SubItem">
<xsl:copy-of select="." />
</xsl:template>
</xsl:stylesheet>
Выполнение этого с помощью преобразования позволяет гибко изменять содержимое, которое вы хотите скопировать, не затрагивая исполняемый файл в будущем - просто измените Xslt в соответствии с вашими потребностями.
Подсказка
Ваш вопрос говорит о том, что вы, вероятно, предпочитаете простой текстовый файл с позициями для дальнейшей обработки - в этом случае вы все равно можете использовать Xslt, но с выводом текста.