Java Xml中特定于标记的字符串
我喜欢在xml文档中标记一些字符串 例如,我有:Java Xml中特定于标记的字符串,java,xml,Java,Xml,我喜欢在xml文档中标记一些字符串 例如,我有: <p> I like to go to Florida </p> 我喜欢去佛罗里达 我需要标记字符串“go”,并将输出作为: <p> I like to <something>go</something> to Florida</p> 我喜欢去佛罗里达 最好的方法是什么?我正在使用Java。我需要将XML文件视为XML而不是文本。我找到了一些将xml文件视为文本文件并
<p> I like to go to Florida </p>
我喜欢去佛罗里达
我需要标记字符串“go”,并将输出作为:
<p> I like to <something>go</something> to Florida</p>
我喜欢去佛罗里达
最好的方法是什么?我正在使用Java。我需要将XML文件视为XML而不是文本。我找到了一些将xml文件视为文本文件并使用string.replace的解决方案,但我认为这些不是好的解决方案
任何建议都将不胜感激
谢谢,请尝试以下XSLT 2.0转换:
<xsl:template match="@*|*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="text()">
<xsl:analyze-string regex="go">
<xsl:matching-substring>
<something><xsl:value-of select="."/></something>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:template>
当然,您可以扩展正则表达式,例如regex=“go | come | walk | run”;如果您只想匹配整个单词,您可能需要使用tokenize()将其拆分为单词,并分别处理每个单词。您需要在某个地方使用String.replace()。即使您创建了一个(很难理解)XSL文件。将出现某种字符串。replace()。如果知道文本所在的XML元素,则可以创建DOM/STAX解析器,并仅在该元素中执行String.replace()。