У меня есть файл XML, который находится в следующем формате:Преобразование XML-документа для использования с .NET 2.0 управления TreeView
<root>
<category>
<doctype>
<name>Doc1</name>
<site>
<name>Site1</name>
<target>iframe</target>
<url>http://www.gmail.com</url>
</site>
</doctype>
<doctype>
<name>Doc2</name>
<site>
<name>Site2</name>
<target>iframe</target>
<url>http://www.bbc.co.uk</url>
</site>
</doctype>
</category>
</root>
мне нужно использовать его на стандартном .net управления 2,0 TreeView, который требует XML в следующем формате
<root>
<category>
<doctype name="Doc1">
<site name = "Site1" target = "iframe" url = "http://www.gmail.com">
</site>
</doctype>
<doctype name="Doc2">
<site name = "Site2" target = "iframe" url = "http://www.bbc.co.uk">
</site>
</doctype>
</category>
</root>
Самая большая сложность заключается в том, что некоторые дочерние узлы необходимости DOCTYPE узла должны быть преобразованы в атрибуты (например, имя), в то время как некоторые пребывания в качестве дочерних узлов, которые требуют атрибуты своих собственных (т.е. МЕСТЕ).
Как это можно сделать с помощью XSLT?
Если вы можете поселиться на последовательном случае для преобразования имен в моем ответе стало бы намного проще. Кроме того, я немного не уверен, что ваш входной XML * действительно * имеет кавычки. Можете ли вы это подтвердить? – Tomalak
извинения, я постучал, пытаясь имитировать то, что я на самом деле получаю, но не обратил внимания на случай и забыл о котировках. – eMTeeN
Я изменил свой ответ, чтобы соответствовать вашему новому вопросу. Вы обнаружите, что теперь это намного проще. – Tomalak