我可以正常工作,但是我想知道是否有一种方法可以将子字符串fx嵌套在包含功能中
XML:
<patientRole>
<telecom use="HP" value="tel:555-555-2004" />
<telecom use="HP" value="mailto:aaeveryman@email.com" />
正在使用XSLT:
<xsl:variable name="PtTelecom" select="ClinicalDocument/recordTarget/patientRole/telecom/@value"/>
<xsl:variable name="PtPhoneNumber" select="$PtTelecom[contains(., 'tel')]"/>
<xsl:variable name="PtPhoneNumberFormat" select="substring-after($PtPhoneNumber, 'tel:')"/>
<xsl:variable name="PtEmail" select="$PtTelecom[contains(., 'mailto')]"/>
<xsl:variable name="PtEmailFormat" select="substring-after($PtEmail, 'mailto:')"/>
是否可以嵌套类似我想要的子字符串之后的tel:如果它包含tel:
<xsl:variable name="PtPhoneNumber" select="substring-after(contains($PtTelecom, 'tel'), 'tel:')"/>
<xsl:variable name="PtEmail" select="substring-after(contains($PtTelecom, 'mailto'), 'mailto:')"/>
这没有返回任何值,所以我觉得a)不能嵌套或b)我有问题。感谢您的帮助
答案 0 :(得分:0)
所以,不要这样做...
<xsl:variable name="PtPhoneNumber" select="$PtTelecom[contains(., 'tel')]"/>
<xsl:variable name="PtPhoneNumberFormat" select="substring-after($PtPhoneNumber, 'tel:')"/>
执行此操作。
<xsl:variable name="PtPhoneNumberFormat" select="substring-after($PtTelecom[contains(., 'tel')], 'tel:')"/>
因此,您实际上是在用变量声明代替变量的使用。当然,您现在可以使用其他变量名了。...
<xsl:variable name="PtPhoneNumber" select="substring-after($PtTelecom[contains(., 'tel')], 'tel:')"/>
类似的电子邮件。.
<xsl:variable name="PtEmail" select="substring-after($PtTelecom[contains(., 'mailto')], 'mailto:')"/>