次のようなxml文字列があります
S = "<B xmns=\"som2\"> <a other='v1' more='v2'/><b some=\"v3/></B>".
終了タグを削除したい</B>
S2 = "<B xmns=\"som2\"> <a other='v1' more='v2'/><b some=\"v3/>"
どうすればこれを達成できますか?
次のようなxml文字列があります
S = "<B xmns=\"som2\"> <a other='v1' more='v2'/><b some=\"v3/></B>".
終了タグを削除したい</B>
S2 = "<B xmns=\"som2\"> <a other='v1' more='v2'/><b some=\"v3/>"
どうすればこれを達成できますか?
特定の文字列リテラルのみを削除したい場合は</B>
、サブリストを取得するとうまくいきます。
S = "<B xmns=\"som2\"> <a other='v1' more='v2'/><b some=\"v3\"/></B>",
lists:sublist(S, 1, length(S) - 4).
%%= "<B xmns=\"som2\"> <a other='v1' more='v2'/><b some=\"v3\"/>"
より一般的なアプローチが必要な場合は、次のre:replace/3
関数を使用できます。
S1 = re:replace(S, "</B>", ""),
S2 = iolist_to_binary(S1),
binary_to_list(S2).
%%= "<B xmns=\"som2\"> <a other='v1' more='v2'/><b some=\"v3\"/>"
コメントで述べたように、オプションを提供する{return, list}
方がはるかにクリーンです。
re:replace(S, "</B>", "", [{return,list}]).
%%= "<B xmns=\"som2\"> <a other='v1' more='v2'/><b some=\"v3\"/>"