Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Xml中特定于标记的字符串_Java_Xml - Fatal编程技术网

Java 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文件视为文本文件并

我喜欢在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()。