없는 루트 노드를 하나 XML
파일 :XSLT를 사용하여 XML을 변환 - 내가 가진
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<File>
<Customer>
<LastName>MyLastName</LastName>
</Customer>
<Cars>
<Car>
<Color>Blue</Color>
<Model>Car2</Model>
<Year>1988</Year>
<Speed>250</Speed>
</Car>
<Car>
<Color>Green</Color>
<Model>Car3</Model>
<Year>1989</Year>
<Speed>350</Speed>
</Car>
</Cars>
</File>
나는에 대한
XSLT
를 사용하여이 변환 할
가 있습니다
<?xml version="1.0" encoding="utf-8"?>
<File>
<Purchaser>
<Name>MyLastName</Name>
</Purchaser>
<vehicles>
<vehicle>
<vehicleColor>Blue</vehicleColor>
<vehicleModel>Car2</vehicleModel>
<vehicleYear>1988</vehicleYear>
<vehicleSpeed>250</vehicleSpeed>
</vehicle>
<vehicle>
<vehicleColor>Green</vehicleColor>
<vehicleModel>Car3</vehicleModel>
<vehicleYear>1989</vehicleYear>
<vehicleSpeed>350</vehicleSpeed>
</vehicle>
</vehicles>
</File>
내 XSLT
파일 :
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"
indent="yes"
encoding="utf-8"
media-type="text/xml"/>
<xsl:template match="File/Customer">
<xsl:element name="Purchaser">
<xsl:element name="Name">
<xsl:value-of select="LastName"/>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template match="File/Cars">
<xsl:element name="vehicles">
<xsl:for-each select="Car">
<xsl:element name="vehicle">
<xsl:element name="vehicleColor">
<xsl:value-of select="Color"/>
</xsl:element>
<xsl:element name="vehicleModel">
<xsl:value-of select="Model"/>
</xsl:element>
<xsl:element name="vehicleYear">
<xsl:value-of select="Year"/>
</xsl:element>
<xsl:element name="vehicleSpeed">
<xsl:value-of select="Speed"/>
</xsl:element>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
그러나 출력 파일에 루트 노드가 없습니다. 이 작업을 수행하는 방법?
또한 변환을 수행하는 좋은 방법입니까? 여러 개의 템플릿이 쌓여 있습니까?
감사합니다. ''은 ''입니까? xslt 파일에 노드를 직접 쓸 수 있습니까? –
@ Azerty123 원칙적으로 ** 계산을하지 않는 한 [literal result elements] (https://www.w3.org/TR/xslt/#literal-result-element), 즉 ''을 사용해야합니다. ** 요소의 이름 (네임 스페이스 포함) - 그럼 당신은'xsl : element' 명령을 사용해야 할 것입니다. –