У меня есть xml файл. Я пытаюсь сгенерировать новый xml файл из этого старого xml файла с некоторыми изменениями.
У меня xml вот так
<Parent>
<child>
<child 1 />
<child 2 />
<child 3>
<child A1 />
<child A2 />
<child A3 />
</child 3 >
<child 4 />
<child 5 />
</child>
<Parent>
Я пытаюсь сгенерировать новый xml файл как этот
<Parent>
<Child>
<child 1/>
<child 3/>
<child 3/>
<child A1 />
<child A2 />
<child A3 />
</child 3 >
<child 4 />
<child 5 />
</Child>
<Child>
<child 1 />
<child 2 />
<child 3>
<child A1 />
<child A2 />
<child A3 />
</child 3 >
<child 4 />
<child 5 />
</Child>
</Parent>
Я пробовал ниже код
XmlReader xmlreader;
if (xmlTextReader.ReadToFollowing("Parent"))
{
XmlReader inner = xmlTextReader.ReadSubtree();
while (isStartElement)
{
inner.Read();
switch (xmlTextReader.NodeType)
{
case XmlNodeType.Element:
xmlreader = inner.ReadSubtree();
xmlreader.ReadToDescendant("Parent");
xmlreader.Read();
do
{
if (xmlTextReader.Name != "Parent")
{
xmlTextWriter.WriteStartElement(xmlTextReader.Prefix, xmlTextReader.LocalName,xmlTextReader.NamespaceURI);
}
if (xmlTextReader.HasAttributes)
{
while (xmlTextReader.MoveToNextAttribute())
{
xmlTextWriter.WriteAttributeString(xmlTextReader.Name,xmlTextReader.Value.ToString());
}
}
xmlTextWriter.WriteEndElement();
} while (inner.ReadToNextSibling("Child"));
break;
}
}
}
Я пробовал выше код, но он получает только возвращение ниже xml
<Child />
<Child />
Это возвращение на родительском узле child1 child2 et c. узлы
Я использую 2 xmlreader для чтения xml
Мне нужно вывод xml, например
<Child>
<child 1/>
<child 3/>
<child 3/>
<child A1 />
<child A2 />
<child A3 />
</child 3 >
<child 4 />
<child 5 />
</Child>
<Child>
<child 1 />
<child 2 />
<child 3>
<child A1 />
<child A2 />
<child A3 />
</child 3 >
<child 4 />
<child 5 />
</Child>
Мне нужен некоторый код во время выполнения для получения дочерние узлы, а затем закройте родительский узел. так что я получу желаемый результат