【发布时间】:2017-06-18 10:24:49
【问题描述】:
我有一个获取 XML 字符串的方法,理论上应该在每个特定标记之前插入注释。我想知道如何使它工作
public static String addCommentXML(String xmlString, String tagName, String comment)
{
StringBuilder sb = new StringBuilder(xmlString);
for(int i = 0; i < sb.toString().length(); i++)
{
if(sb.toString().toLowerCase().contains("<"+tagName+">"))
{
sb.insert(sb.toString().indexOf("<"+tagName+">", i) - 1, "<!--"+ comment+"-->"+"\n");
}
}
return sb.toString();
}
addCommentXML("somereallylongxml", "second", "it’s a comment") 的输出
应该是
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<first>
<!--it's a comment-->
<second>some string</second>
<!--it's a comment-->
<second>some string</second>
<!--it's a comment-->
<second><![CDATA[need CDATA because of < and >]]></second>
<!--it's a comment-->
<second/>
</first>
但它显然不起作用,因为我不知道如何正确地遍历字符串以在每个 tagName 之前添加,不仅是第一个,所以我们得到无限循环。我该怎么做?
【问题讨论】:
-
你应该用正则表达式来做到这一点。
-
但是这里我需要先添加一些东西,而不是替换
标签: java xml string char stringbuilder