【发布时间】:2011-02-10 04:53:30
【问题描述】:
假设我有一个 Java 字符串,其中包含这样的 xml 数据:
String content = "<abc> Hello <mark> World </mark> </abc>";
现在,我试图将此字符串呈现为网页上的文本并突出显示/标记单词“World”。标签“abc”可以动态更改,那么有没有办法可以使用 Java 重命名字符串中最外层的 xml 标签?
我想把上面的String转换成如下所示的格式:
String content = "<i> Hello <mark> World </mark> </i>";
现在,我可以使用新的字符串来设置 html 内容并以斜体显示文本并突出显示单词 World。
谢谢, 索尼
PS:我在 BaseX xml 数据库中的文件上使用 xquery。字符串内容本质上是使用 ft:extract() 提取全文搜索结果的函数的 xquery 的结果。
【问题讨论】:
-
你不能让你的 xquery 返回实际的 xml 对象吗?那么你就不需要重新解析它了,可以直接使用DOM方法,或者javax.xml.transform的一个实现。
-
我同意@OrangeDog。如果您在 XML 树上使用 XQuery,则不需要将结果树转换为字符串(我猜这就是您的
ft:extract()扩展正在做的事情)然后重新解析以进行转换......所有这些都可以在一个 XQuery 查询。此外,这里没有构建字符串后的 XQuery 部分。重新标记。