Мне нужно преобразовать xml-файл в csv-файл. Поэтому я использую msxsl. XML-файл выглядит следующим образом:преобразование xml через xsl (msxsl)
(...)
<Test>
<Field1>Blabla</Field1>
<Values>
<Year>2012</Year>
<Value>12</Value>
</Values>
<Values>
<Year>2013</Year>
<Value>1234</Value>
</Values>
<Field2>abc</Field2>
</Test>
<Test>
<Field1>Blubblub</Field1>
<Field2>def</Field2>
</Test>
(...)
Что означает: Есть наборы данных «Test» с несколькими узлами «ценности», и другие, без какой-либо.
Я попытался решить эту проблему с за-каждый:
(...)
<xsl:for-each select="Test">
(...)
<xsl:for-each select="Values">
(...)
</xsl:for-each>
</xsl:for-each>
(...)
Это работает (в некотором смысле), но число colums не соответствует между наборами данных. Мне нужно, чтобы в каждом наборе данных было максимальное количество колонок для каждого узла во всем файле.
В конце концов, вы должны иметь возможность открыть csv-файл с помощью excel. Поэтому каждый столбец должен содержать одни и те же данные ... есть ли способ сделать это?
Спасибо!
Edit: В этом случае ожидаемый CSV-выход будет выглядеть следующим образом:
Blabla;2012;12;2013;1234;abc
Blubblub;;;;;def
... и НЕ:
Blabla;2012;12;2013;1234;abc
Blubblub;def
Возможно, это было бы яснее, если бы мы могли видеть ожидаемый результат преобразования примера. –
excel откроет xml-файл, может все еще понадобиться преобразование, но это может быть менее болезненным. –
Я добавил ожидаемый вывод csv. Excel не может открыть эти xml-файлы. Мы не знаем, почему - использование msxsl является альтернативным решением ... – Forangar