2010年2月7日日曜日

[java][xml]タグを削除する

要素を削除するのではなくて、タグを削除します。空要素、開始タグ、属性付きの開始タグ、終了タグを削除します。コンテントテキストは残すし、子要素も(削除対象でなければ)残します。
---
/**
 * XMLから、指定された要素のタグを削除します。
 * @param xml
 * @param elementName
 * @return
 */
public static String removeTag(final String xml, final String elementName){
String result = xml;
//空要素と開始タグと終了タグを削除します
result = result.replaceAll("</?" + elementName + "/?>", "");
//属性付きの開始タグを削除します
result = result.replaceAll("<" + elementName + " [^>]*>", "");
return result;
}
---

で、これがテストケースです。
---
@Test
public void testRemoveTag(){
String xml = "<html><head><title>Title</title></head><body><div>Top Level</div><div/><div class=\"\">.</div></body></html>";
String expected = "<html><head><title>Title</title></head><body>Top Level.</body></html>";
String result = XMLUtils.removeTag(xml, "div");
System.out.println(result);
assertEquals(expected,result);
}
---

ではまた。

0 件のコメント:

コメントを投稿