入力データを制御できないシナリオがあります。たとえば、入力は次のようになります。
<phoneNumber>6504323957</phoneNumber>
また
<phoneNumber>650-432-3957</phoneNumber>
また
<phoneNumber>(650)432-3957</phoneNumber>
また
<phoneNumber>650.432.3957</phoneNumber>
ただし、私の出力は常に次のようになります
<areaCode>650</areaCode>
<phoneNumber>432-3957</phoneNumber>
私は次のxslを使用してこれを達成しようとしています。これは、ある条件でのみ機能し、他の条件では機能しません。
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:element name="areaCode">
<xsl:value-of select="substring(phoneNumber,1,3)"/>
</xsl:element>
<xsl:element name="phoneNumber">
<xsl:value-of select="substring(phoneNumber,5,12)"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>