入力XMLにヘッダー、コンテンツ、フッターの各部分があります。 XMLからJSONへの変換は、XSLTを使用するとうまくいきます。XSLTを使用して1つのXMLファイルから3つのJSONに分割する方法
<header>
<trackingSettings>
<urlcode>W3333</urlcode>
<apiurl>http://mlucenter.com/like/api</apiurl>
</trackingSettings>
</header>
<mlu3_body>
<columnsCount>2</columnsCount>
<lineBackground>linear-gradient(to right, rgba(94, 172, 192, 0) 0%, c4cccf 50%, rgba(94, 172, 192, 0) 100%)</lineBackground>
</mlu3_body>
<footer>
<buttons>
<button/>
</buttons>
<banner/>
</footer>
私のXSLT使用:サクソンPE内を使用して
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes" method="xml" />
<xsl:template match="*">
<xsl:value-of select="name()"/> : <xsl:call-template name="Properties"/>
</xsl:template>
<xsl:template match="*" mode="ArrayElement">
<xsl:call-template name="Properties"/>
</xsl:template>
<xsl:template name="Properties">
<xsl:variable name="childName" select="name(*[1])"/>
<xsl:choose>
<xsl:when test="not(*|@*)">"<xsl:value-of select="."/>"</xsl:when>
<xsl:when test="count(*[name()=$childName]) > 1">{ "<xsl:value-of select="$childName"/>" :[<xsl:apply-templates select="*" mode="ArrayElement"/>] }</xsl:when>
<xsl:otherwise>{
<xsl:apply-templates select="@*"/>
<xsl:apply-templates select="*"/>
}</xsl:otherwise>
</xsl:choose>
<xsl:if test="following-sibling::*">,</xsl:if>
</xsl:template>
<xsl:template match="@*">"<xsl:value-of select="name()"/>" : '<xsl:value-of select="."/>',
</xsl:template>
</xsl:stylesheet>
ここ
イム
私の入力XMLファイルは次のとおりです。しかし、私は、ヘッダー、コンテンツやフッターなど三つの部分として出力する必要があります酸素:
このXMLをheader.json
,content.json
(mlu3_body)とfooter.json
の3つのJSONファイルに変換します。
これはXSLTを使用することで可能ですか、すべての入力ファイルを個別に保持したいですか?いくつか考えてください。
「XMLからJSONへの変換がXSLTを使用してうまく機能する」場合は、そのコードを表示してください。一般に、Saxon 9でoXygenでサポートされているXSLT 2.0と3.0は、もちろんxsl:result-documentというhttps://www.w3.org/TR/xslt20/#creating-result-treesを使っていくつかの結果ドキュメントを書くことができます。 –
XSLTで編集しました。@ Martin – User501