我是XML和XSLT的新手,所以我需要一些帮助。我有这种XML:
<Catalogue>
<App id="1">
<Car>BMW</Car>
<BodyType>Sedan</BodyType>
<PartType>Wiper</PartType>
<PartNumber>1234</PartNumber>
</App>
<App id="2">
<Car>Dodge</Car>
<DriveType>FWD</DriveType>
<PartType>Wiper</PartType>
<PartNumber>5678</PartNumber>
</App>
<App id="3">
<Car>Chevrolet</Car>
<EngineVIN>G</EngineVIN>
<PartType>Wiper</PartType>
<PartNumber>9012</PartNumber>
</App>
<App id="4">
<Car>VW</Car>
<PartType>Wiper</PartType>
<PartNumber>3456</PartNumber>
</App>
</Catalogue>
我无法弄清楚如何编写一个XSLT来添加id = 0的顶级App,所以它看起来像这样:
<Catalogue>
<App id="0">
<Car></Car>
<BodyType></BodyType>
<DriveType></DriveType>
<EngineVIN></EngineVIN>
<PartType></PartType>
<PartNumber></PartNumber>
</App>
<App id="1">
<Car>BMW</Car>
<BodyType>Sedan</BodyType>
<PartType>Wiper</PartType>
<PartNumber>1234</PartNumber>
</App>
<App id="2">
<Car>Dodge</Car>
<DriveType>FWD</DriveType>
<PartType>Wiper</PartType>
<PartNumber>5678</PartNumber>
</App>
<App id="3">
<Car>Chevrolet</Car>
<EngineVIN>G</EngineVIN>
<PartType>Wiper</PartType>
<PartNumber>9012</PartNumber>
</App>
<App id="4">
<Car>VW</Car>
<PartType>Wiper</PartType>
<PartNumber>3456</PartNumber>
</App>
</Catalogue>
我现在尝试几天没有运气,所以任何帮助都会受到赞赏。我需要这个,因为当我想将这个XML导入Access时,出于某种原因,如果在第一个“App”中没有定义所有字段(发生在其他“App”-s中),它们就不会被导入。
谢谢!
答案 0 :(得分:1)
如果您对一组固定的标签感到满意,可以很容易地在XSLT 1.0中完成,如下所示:
<xsl:template match="/Catalogue">
<Catalogue>
<App id="0">
<Car></Car>
<BodyType></BodyType>
<DriveType></DriveType>
<EngineVIN></EngineVIN>
<PartType></PartType>
<PartNumber></PartNumber>
</App>
<xsl:copy-of select="App"/>
</Catalogue>
</xsl:template>
请注意,我为<App>
添加了结束标记。这些文件在XML文件中缺失。