我的價值來了
<sf:pitch><p><span style="color: rgb(68, 68, 68);">https://PPsdfgndgnlksdnflksklenrgkdngldsfklsndfg.com.au</span></p> </sf:pitch>
我希望輸出類似于并洗掉從 SF:pitch 值中洗掉的每個“p”、“span”和非文本。
https://PPsdfgndgnlksdnflksklenrgkdngldsfklsndfg.com.au
我已將代碼洗掉<p>,但我想要一個通用代碼從值中洗掉任何標簽。
我用來洗掉的代碼<p>是
<xsl:value-of select="substring-before(substring-after(*:Envelope/*:Body/*:retrieveResponse/*:result/*:pitch, '<p>'), '</p>')" disable-output-escaping="yes"/>
uj5u.com熱心網友回復:
你說:
我想要一個通用代碼來從值中洗掉任何標簽
sf:pitch但是;的值中沒有任何“標簽” 。它都是一個包含一些轉義標記的單個字串。除非您首先將字串轉換為 XML(使用 XSLT 3.0 或禁用轉義的單獨轉換)并按此方式處理它,否則您必須使用字串操作來處理它——這既困難又容易出錯。
也許您可以執行以下操作:
<xsl:value-of select="replace($string, '.*>([^<] )<.*', '$1')" />
$string您的示例中的sf:pitch元素在哪里。
但總的來說,這不是一個好方法 - 看看這里為什么。
uj5u.com熱心網友回復:
如果您有權訪問該fn:parse-xml()功能或類似的擴展功能,請使用string(parse-xml(text())). 這是假設內容是格式良好的 XML。替代品是parse-xml-fragment()或parse-html()
uj5u.com熱心網友回復:
<xsl:template match="sf:pitch">
<xsl:value-of select="text()"/>
</xsl:template>
但是您沒有說明它是每個 sf:pitch 還是任何其他可能的變化。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/427383.html
