首页 文章

子串中的字符串替换

提问于
浏览
7

我想为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字符串包含许多以 <> 开头和结尾的子字符串 . 子字符串可以包含XML实体,例如 ><&'" . 该方法需要用 ><& 替换它们 . 分别为 '" .

Java中是否有任何正则表达式方法来完成此任务?

2 回答

  • 2

    这些数据是传递给您的,还是您可以控制它?如果是这样,那么我建议使用CDATA块 . 如果您确实不确定要输入到xml块中的数据,那么只需将所有内容包装在CDATA中,然后再将其保存到数据库中

    如果你无法控制这个,那么据我所知,由于你可能需要处理的边缘情况的数量,这将需要相当多的编码 . 不是一个简单的正则表达式能够处理的东西(如果一个有效的块正在启动,如果一个结束,如果一个已经结束,等等)

    这是<>案例的一个非常基本的正则表达式,但其余的我真的相信只是变得非常复杂

    \<\>* //For <> changes
    
  • 3

    你可以关注an example

    • 通过Dom或SAX读取XML文件

    • 用正则表达式替换字符串

    • 由Dom或SAX编写XML文件

相关问题