正如 Headers 所描述的那样我试图像这样使用xml:
<Measurement>
<Name>Board_1_Output_0</Name>
<LongIdentifier>Board 1 Output 0<LongIdentifier/>
...
<ECUAddress>2000000F</ECUAddress>
</Measurement>
<Measurement>
<Name/>
<LongIdentifier/>
...
<ECUAddress/>
</Measurement>
并有条件地删除 <Measurement>
如果 <Measurement>
的任何子节点为空,如下所示:
<Measurement>
<Name>Board_1_Output_0</Name>
<LongIdentifier>Board 1 Output 0<LongIdentifier/>
...
<ECUAddress>2000000F</ECUAddress>
</Measurement>
我这个部分的当前xslt看起来像这样:
<xsl:for-each select="Measurement">
<xsl:text>/begin MEASUREMENT</xsl:text>
<xsl:text>/* Name */	</xsl:text>
<xsl:value-of select ="Name"/>
<xsl:apply-templates select="LongIdentifier">
<xsl:text>ECU_ADDRESS				</xsl:text>
<xsl:value-of select ="ECUAddress"/>
<xsl:text>/end MEASUREMENT</xsl:text>
</xsl:for-each ><!-- Measurement -->
我认为我可以有条件地查看每个部分,如果任何子标记都为空,则不打印任何 <Measurment>
XML标记,但是,我只能实现保留父 <Measurement>
元素:
<Measurement></Measurement>
当我发现在同一个xslt样式表中有一个空子项时,有没有办法删除父xml节点?或者我是否需要通过不同的样式表运行xml以删除任何具有空子节点的XML节点?
1 回答
您可以在
for-each
中使用一些XPath来过滤掉<Measurement>
元素 . 如果要删除任何子元素为空的所有元素,可以执行以下操作:即只选择
<Measurement>
元素,其中没有任何子元素为空 .