我想为Java类编写一个方法。该方法接受一串XML数据作为输入,如下所示。
<?xml version="1.0" encoding="UTF-8"?>
<library>
<book>
<name> <> Programming in ANSI C <> </name>
<author> <> Balaguruswamy <> </author>
<comment> <> This comment may contain xml entities such as &, < and >. <> </comment>
</book>
<book>
<name> <> A Mathematical Theory of Communication <> </name>
<author> <> Claude E. Shannon <> </author>
<comment> <> This comment also may contain xml entities. <> </comment>
</book>
<!-- This library contains more than ten thousand books. -->
</library>
XML字符串包含许多以&lt;&gt; 开头和结尾的子字符串。子字符串可能包含XML实体,例如&gt; ,&lt; ,&amp; ,&#39; 和的&#34; 即可。该方法需要用&amp; gt; ,&amp; lt; ,&amp; amp; 替换它们。分别为&amp; 和&amp; quot; 。
Java中是否有正则表达式方法来完成此任务?
答案 0 :(得分:3)
这些数据是传递给您的,还是您可以控制它?如果是这样,那么我建议使用CDATA块。如果您真的不确定输入到xml块中的数据,那么只需将所有内容包装在CDATA中,然后再将其保存到数据库中
如果你无法控制这个,那么据我所知,由于你可能需要处理的边缘情况的数量,这将需要相当多的编码。不是一个简单的正则表达式能够处理的东西(如果一个有效的块正在启动,如果一个结束,如果一个已经结束,等等)
这是&lt;&gt;的一个非常基本的正则表达式案件,但其余的我真的相信只是变得非常复杂
\<\>* //For <> changes
答案 1 :(得分:2)
您可以关注an example