私は実際にXMLを変換するのに苦労しています。私は通常、XSLTでは問題ないが、XMLの問題を引き起こすルート要素である可能性があります。私は本当にいくつかの指導を感謝します。XSLTを使用したXMLからXMLへの変換
既存のXML:
<Cars>
<Record>
<Make>Volkswagen</Make>
<Service>20000 KM</Service>
<Model>Golf</Model>
<Speed>190 KPH</Speed>
<Engine>1400 CC</Engine>
<Type>Diesel</Type>
<Colour>Black</Colour>
<Doors>3</Doors>
</Record>
<Record>
<Make>Ford</Make>
<Service>15000 KM</Service>
<Model>Fiesta</Model>
<Speed>180 KPH</Speed>
<Engine>1400 CC</Engine>
<Type>Petrol</Type>
<Colour>Red</Colour>
<Doors>5</Doors>
</Record>
</Cars>
マイXSLT:
<?xml version="1.0" ?>
<asx:abap xmlns:asx="http://www.testsrvXXXX.com/abdxml" version="1.0">
<asx:values>
<META>
<XOUTPUT>
<FIELDNAME>Make</FIELDNAME>
<OUTPUTLEN>000130</OUTPUTLEN>
<TYPE>CHAR</TYPE>
<SRC_TEXT>Make</SRC_TEXT>
</XOUTPUT>
<XOUTPUT>
<FIELDNAME>Model</FIELDNAME>
<OUTPUTLEN>000130</OUTPUTLEN>
<TYPE>CHAR</TYPE>
<SRC_TEXT>Car Model</SRC_TEXT>
<XOUTPUT>
<XOUTPUT>
<FIELDNAME>Engine</FIELDNAME>
<OUTPUTLEN>000130</OUTPUTLEN>
<TYPE>CHAR</TYPE>
<SRC_TEXT>Engine Size</SRC_TEXT>
</XOUTPUT>
<XOUTPUT>
<FIELDNAME>Type</FIELDNAME>
<OUTPUTLEN>000130</OUTPUTLEN>
<TYPE>CHAR</TYPE>
<SRC_TEXT>Fuel Type</SRC_TEXT>
</XOUTPUT>
<XOUTPUT>
<FIELDNAME>Colour</FIELDNAME>
<OUTPUTLEN>000130</OUTPUTLEN>
<TYPE>CHAR</TYPE>
<SRC_TEXT>Paint Colour</SRC_TEXT>
</XOUTPUT>
<XOUTPUT>
<FIELDNAME>Doors</FIELDNAME>
<OUTPUTLEN>000130</OUTPUTLEN>
<TYPE>NUM</TYPE>
<SRC_TEXT>Door Count</SRC_TEXT>
</XOUTPUT>
<XOUTPUT>
<FIELDNAME>Speed</FIELDNAME>
<OUTPUTLEN>000130</OUTPUTLEN>
<TYPE>NUM</TYPE>
<SRC_TEXT>Top Speed</SRC_TEXT>
</XOUTPUT>
<XOUTPUT>
<FIELDNAME>Service</FIELDNAME>
<OUTPUTLEN>000130</OUTPUTLEN>
<TYPE>CHAR</TYPE>
<SRC_TEXT>Service Intervals</SRC_TEXT>
</XOUTPUT>
</META>
<Y_OUTPUT>
<item>
<Make>Volkswagen</Make>
<Service>20000 KM</Service>
<Model>Golf</Model>
<Speed>190 KPH</Speed>
<Engine>1400 CC</Engine>
<Type>Diesel</Type>
<Colour>Black</Colour>
<Doors>3</Doors>
</item>
<item>
<Make>Ford</Make>
<Service>15000 KM</Service>
<Model>Fiesta</Model>
<Speed>180 KPH</Speed>
<Engine>1400 CC</Engine>
<Type>Petrol</Type>
<Colour>Red</Colour>
<Doors>5</Doors>
</item>
</Y_OUTPUT>
</asx:values>
</asx:abap>
変換されたXMLが見えるように必要
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="Y_OUTPUT/ITEM">
<Cars>
<Record>
<Make><xsl:value-of select="Make"/></Make>
<Service><xsl:value-of select="Service"/></Service>
<Model><xsl:value-of select="Model"/></Model>
<Speed><xsl:value-of select="Speed"/></Speed>
<Engine><xsl:value-of select="Engine"/></Engine>
<Type><xsl:value-of select="Type"/></Type>
<Colour><xsl:value-of select="Colour"/></Colour>
<Doors><xsl:value-of select="Doors"/></Doors>
</Record>
</Cars>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
2つのものを修正した後、最初の2番目のXOUTPUTタグが正しく閉じられません( '/'は終了タグから抜けています)。次に、xsltでは、for-eachの選択を「// Y_OUTPUT/item」に変更しました。 –