如何使用java

时间:2015-08-27 18:29:03

标签: java regex xml

我有一个像这样的xml文件

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

这是实际的XML文件。在我们的应用程序中,我们将此xml作为String接收。

但不知何故,由于硬件问题,应用程序正在接收xml,如下所示。

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove+++</to>
<from>Jani+</from>
<heading>Reminder++++</heading>
<body>Don't forget me this weekend!</body>
</note>

在我的java方法中,我编写了这样的代码,

//It will trim all the + in the xml.
if(xml.indexOf("[+]")!=-1)){
xml = xml.replaceAll("[+]","").trim();
}

这给出了如下结果。

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove  </to>
<from>Jani </from>
<heading>Reminder    </heading>
<body>Don't forget me this weekend!</body>
</note>

我再次修改了我的代码。

//It will replace all the + and white spaces in the xml.
if(xml.indexOf("[+]")!=-1)){
xml = xml.replaceAll("[+ ]","").trim();
}

但是,这段代码给我的结果如下。

<?xmlversion="1.0"encoding="ISO-8859-1"?>//here I lose the spaces. 
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

这里我丢失了<?xmlversion="1.0"encoding="ISO-8859-1"?>中的空格。

xml正文的另一部分没问题。

    <note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
    </note>

除了<?xmlversion="1.0"encoding="ISO-8859-1"?>.

当我尝试在我的应用程序中运行它时,我收到SAXParcerException:缺少空格......等等。

如何准确编写我的代码以将文件另存为

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

我的应用程序基于纯粹的Jdk 1.4,Web服务器构建为tomcat。

2 个答案:

答案 0 :(得分:0)

尝试使用xlm.replaceAll("\\++", "");一次性替换一个或多个+

答案 1 :(得分:0)

您似乎要删除"+"之前出现的所有"</",:

xml = xml.replaceAll("\\++<\", "<\");

这不会影响"+"出现在其他地方,例如:

<tag>Bill + Ted+++</tag>

将成为

<tag>Bill + Ted</tag>