Я недавно создал пост о выравнивании структуры XML, чтобы каждый элемент и его значения были превращены в атрибуты корневого элемента.Получил отличный ответ и получил его работать.Тем не менее, печально то, что при сглаживании клиент хотел сгладить элементы, а не превращать их в атрибуты: - /
Что у меня есть, это:
<members>
<member xmlns="mynamespace" id="1" status="1">
<sensitiveData>
<notes/>
<url>someurl</url>
<altUrl/>
<date1>somedate</date1>
<date2>someotherdate</date2>
<description>some description</description>
<tags/>
<category>some category</category>
</sensitiveData>
<contacts>
<contact contactId="1">
<contactPerson>some contact person</contactPerson>
<phone/>
<mobile>mobile number</mobile>
<email>some@email.com</email>
</contact>
</kontakter>
</member>
</members>
И что мне нужноявляется следующим:
<members>
<member xmlns="mynamespace" id="1" status="1">
<sensitiveData/>
<notes/>
<url>someurl</url>
<altUrl/>
<date1>somedate</date1>
<date2>someotherdate</date2>
<description>some description</description>
<tags/>
<category>some category</category>
<contacts/>
<contact contactId="1"></contact>
<contactPerson>some contact person</contactPerson>
<phone/>
<mobile>mobile number</mobile>
<email>some@email.com</email>
</member>
</members>
Таким образом, в основном все элементы, но сплющены как дочерние узлы.Я знаю, что начинать синтаксический анализ таких XML-документов совсем нехорошо, но в основном это единственный оставшийся вариант, поскольку CMS, для которой мы импортируем данные, требует такой плоской структуры, а XML-документ поступает из внешнего веб-сервиса.
Я начал делать рекурсивный метод для этого, но у меня возникло странное ощущение, что его можно сделать более плавным (ну, по крайней мере, настолько плавным, насколько это возможно) с некоторым LINQ to XML (?) Я нелучше всего в linq to xml, так что я надеюсь, что найдется кто-нибудь, кто поможет подсказать, как решить эту проблему?: -)
Любая помощь / подсказка очень ценится!
Заранее спасибо.
/ Бо