我是很新,XSLT轉換,我需要改變一個數據集刪除在XML空元素
從數據集的XML看起來像這樣
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<Componentstatus>
<tp_ID>1</tp_ID>
<StatusName>Not inspected</StatusName>
<tp_Modified>2012-02-28T10:51:32+01:00</tp_Modified>
<isacute>1</isacute>
</Componentstatus>
<Componentstatus>
<tp_ID>2</tp_ID>
<StatusName>Acute</StatusName>
<tp_Modified>2012-02-28T10:51:40+01:00</tp_Modified>
</Componentstatus>
<Componentstatus>
<tp_ID>3</tp_ID>
<StatusName>See note</StatusName>
<tp_Modified>2012-02-28T10:51:45+01:00</tp_Modified>
</Componentstatus>
<Componentstatus>
<tp_ID>4</tp_ID>
<StatusName>Acceptable</StatusName>
<tp_Modified>2012-02-28T10:52:36+01:00</tp_Modified>
</Componentstatus>
<Componentstatus>
<tp_ID>5</tp_ID>
<StatusName>Action recommended</StatusName>
<tp_Modified>2012-02-28T10:53:07+01:00</tp_Modified>
</Componentstatus>
</NewDataSet>
的XSLT
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://ait.com/componentstatus/">
<xsl:output method="xml" version="4.0" indent="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>
<xsl:template match="//NewDataSet" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">z
<ComponentStatusList>
<xsl:for-each select="Componentstatus">
<Status>
<xsl:attribute name="StatusId">
<xsl:value-of select="tp_ID" />
</xsl:attribute>
<StatusName>
<xsl:value-of select="StatusName"/>
</StatusName>
<Acute>
<xsl:value-of select="isacute"/>
</Acute>
</Status>
</xsl:for-each>
</ComponentStatusList>
</xsl:template>
</xsl:stylesheet>
和genarated xml
<?xml version="1.0" encoding="utf-8"?>z
<ComponentStatusList xmlns="http://ait.com/componentstatus/">
<Status StatusId="1">
<StatusName>Not inspected</StatusName>
<Acute>1</Acute>
</Status>
<Status StatusId="2">
<StatusName>Acute</StatusName>
<Acute></Acute>
</Status>
<Status StatusId="3">
<StatusName>See note</StatusName>
<Acute></Acute>
</Status>
<Status StatusId="4">
<StatusName>Acceptable</StatusName>
<Acute></Acute>
</Status>
<Status StatusId="5">
<StatusName>Action recommended</StatusName>
<Acute></Acute>
</Status>
</ComponentStatusList>
正如你所看到的,即使isacute元素丟失,我也會得到一個空的<Acute></Acute>
。如何生成的XML和刪除元素在生成的XML如果要素缺失或至少將其設置爲<Acute xsi:nil="true" />.
多虧了你們倆,我很抱歉我只能接受一個答案 – klashagelqvist 2012-03-02 09:41:30