Я конвертирую xml в json, используя xslt.
Проблема, с которой я столкнулся, заключается в следующем: если у определенного элемента xml нет родных элементов, он не возвращается в виде массива.
<xsl:if test="count(preceding-sibling::*[name() = name(current())]) = 0">
<xsl:text>"</xsl:text><xsl:value-of select="name()" /><xsl:text>":</xsl:text>
<xsl:if test="count(following-sibling::*[name() = name(current())]) > 0">
<xsl:text>[</xsl:text>
</xsl:if>
</xsl:if>
То, что я хотел бы, это если бы у братьев и сестер родительского элемента был тот же элемент (ы), что и у массива, то этот элемент также должен быть массивом.
так что я бы хотел:
<element>
<child_element>
<grandchild_element>
only one
</grandchild_element>
</child_element>
<child_element>
<grandchild_element>
one
</grandchild_element>
<grandchild_element>
two
</grandchild_element>
</child_element>
Я бы хотел следующий вывод
{
"element": {
"child-element": [
{
"grandchild_element": "only one"
}
],
"child-element": [
{
"grandchild_element": "one" ,
"grandchild_element": "two"
}
]
}
}
спасибо