私はXML文字列を取得するメソッドを持っています。理論的には、すべての特定のタグの前にコメントを挿入する必要があります。私はそれは私が追加して正しく文字列を反復処理する方法がわからないので、addCommentXML("somereallylongxml", "second", "it’s a comment")
の特定の文字列内の文字列を検索して挿入する方法
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();
}
出力が
<?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>
でなければなりません。しかし、それは明らかに動作しません動作させるためにどのように疑問に思いますすべてのタグ名の前に、最初だけでなく、私たちは無限ループを取得します。どうやってやるの?
これは正規表現で行う必要があります。 –
しかし、ここで私は前に何かを追加する必要があります。 –