0
ノードから複数のテキスト値を避ける方法。私は、私のコードが正常に動作しているロジックを書いています。予想される出力ごとに結果を得ていますが、期待される出力に対して何か別の方法がありますか?ノードから複数のテキスト値を避ける方法
入力:
<?xml version="1.0" encoding="UTF-8"?>
<Customer>
<name>
<Id>1AZlzxIAD 001AZlzxIyyy</Id>
<phone>1</phone>
</name>
<name>
<Id>1AZlzxIAD 001AZlzxIyyy 001AZl</Id>
<phone>8</phone>
</name>
<name>
<Id>0zyIAD</Id>
<phone>3</phone>
</name>
<name>
<Id>IAT</Id>
<phone>5</phone>
</name>
<name>
<Id>zXIAT</Id>
<phone>9</phone>
</name>
コード:
<xsl:template match="/">
<Customer>
<xsl:for-each select="Customer/name">
<xsl:if test="not(contains(Id, ' '))">
<xsl:copy-of select="."/>
</xsl:if>
</xsl:for-each>
</Customer>
</xsl:template>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
予想される出力:あなたがして、あなたの現在の<xsl:template match="/">...</xsl:template>
を置き換えることができ
<?xml version="1.0" encoding="UTF-8"?>
<Customer>
<name>
<Id>0zyIAD</Id>
<phone>3</phone>
</name>
<name>
<Id>IAT</Id>
<phone>5</phone>
</name>
<name>
<Id>zXIAT</Id>
<phone>9</phone>
</name>
</Customer>