我想在前导空格后面的文本中添加一些字符串。如何检测领先空间的任何想法?感谢。
例如,我想在abc前添加“def”但是在前导空格之后。
<AAA>
<CCC> abc</CCC>
</AAA>
输出应该变为:“defabc”
答案 0 :(得分:2)
此转化:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="text()[starts-with(.,' ')]">
<xsl:value-of select=
"concat(' ', 'def', substring(.,2))"/>
</xsl:template>
</xsl:stylesheet>
应用于提供的XML文档:
<AAA>
<CCC> abc</CCC>
</AAA>
生成想要的正确结果:
<AAA>
<CCC> defabc</CCC>
</AAA>
答案 1 :(得分:1)
假设您正在尝试在xslt中执行此操作,我将使用XSLT的starts-with函数。
如果您提供一些示例XSLT代码,则更容易解释更多。
答案 2 :(得分:0)
除了Dimitre正确使用模式匹配的答案之外,这个XPath表达式可以帮助你:
concat(substring($AddString, 1 div starts-with($String,' ')), $String)