C# XSLT中的连接
我发现为特定的XML节点创建XSLT很困难。请帮我解决这个问题。 XML节点:C# XSLT中的连接,c#,xml,xslt,C#,Xml,Xslt,我发现为特定的XML节点创建XSLT很困难。请帮我解决这个问题。 XML节点: <field name="GOP Structure"> <GOPStructures> <GOPStructure> <M value="0" /> <N value="1" /> <coverage value="3.6" /> &
<field name="GOP Structure">
<GOPStructures>
<GOPStructure>
<M value="0" />
<N value="1" />
<coverage value="3.6" />
</GOPStructure>
<GOPStructure>
<Mmax value="3" />
<Mmin value="2" />
<N value="48" />
<coverage value="99.9" />
</GOPStructure>
<GOPStructure>
// so on..
</GOPStructure>
</GOPStructures>
<AverageGOPLength value="48" /> </field>
//以此类推。。
我想要的输出是:
特定GOP结构节点可以有3个子节点(M、N和覆盖范围)或4个子节点(Mmax、Mmin、N和覆盖范围)。
对于4个子节点,输出XML M值应在[Mmin..Mmax]范围内。查看这是否适用于您
<xsl:template match="field[@name='GOP Structure']">
<field name="GOP Structure">
<xsl:attribute name="value">
<xsl:apply-templates select="GOPStructures/GOPStructure[M or Mmax]"/>
</xsl:attribute>
</field>
<field name="Average GOP Length" value="{AverageGOPLength/@value}"/>
</xsl:template>
<xsl:template match="GOPStructure[M]">
<xsl:text>(M=</xsl:text>
<xsl:value-of select="M/@value"/>
<xsl:text> N=</xsl:text>
<xsl:value-of select="N/@value"/>
<xsl:text>)(</xsl:text>
<xsl:value-of select="coverage/@value"/>
<xsl:text>%)</xsl:text>
<xsl:if test="position()!=last()">
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:template>
<xsl:template match="GOPStructure[Mmax]">
<xsl:text>(M=[</xsl:text>
<xsl:value-of select="Mmin/@value"/>
<xsl:text>..</xsl:text>
<xsl:value-of select="Mmax/@value"/>
<xsl:text>] N=</xsl:text>
<xsl:value-of select="N/@value"/>
<xsl:text>)(</xsl:text>
<xsl:value-of select="coverage/@value"/>
<xsl:text>%)</xsl:text>
<xsl:if test="position()!=last()">
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:template>
(M)=
N=
)(
%)
,
(M)=[
..
]N=
)(
%)
,
好的,我的疑问已经消除了。我将删除我的评论。