我想使用java从我的原始xml文件中删除一些属性和一些标签,如果有人可以帮助我,我将非常高兴。谢谢。
XML文件;
<?xml version="1.0" encoding="iso-8859-1"?>
<html>
<table cellspacing="0" cellpadding="3" align="Center" rules="cols" bordercolor="#999999" border="1" id="DataGrid1" bgcolor="White" height="8" width="624" style="Z-INDEX: 111; LEFT: 120px; POSITION: absolute; TOP: 128px">
<tbody>
<tr bgcolor="#000084">
<td><font color="White"><b>Date</b></font></td>
<td><font color="White"><b>Time</b></font></td>
<td><font color="White"><b>Quay</b></font></td>
<td><font color="White"><b>Vessel</b></font></td>
<td><font color="White"><b>Call Reference Number</b></font></td>
</tr>
<tr bgcolor="#EEEEEE">
<td><font color="Black">01.01.2014</font></td>
<td><font color="Black">11:00</font></td>
<td><font color="Black">P7</font></td>
<td><font color="Black">"SELFOSS"</font></td>
<td><font color="Black">NLRTM13029124 </font></td>
</tr>
<tr bgcolor="Gainsboro">
<td><font color="Black">01.01.2014</font></td>
<td><font color="Black">15:00</font></td>
<td><font color="Black">P6</font></td>
<td><font color="Black">"NEDLLOYD MARITA"</font></td>
<td><font color="Black">NLRTM13029408 </font></td>
</tr>
<tbody>
<table>
<html>
我想将此xml更改为
<?xml version="1.0" encoding="iso-8859-1"?>
<html>
<table>
<tbody>
<tr>
<td>Date</td>
<td>Time</td>
<td>Quay</td>
<td>Vessel</td>
<td>Call Reference Number</td>
</tr>
<tr>
<td>01.01.2014</td>
<td>11:00</td>
<td>P7</td>
<td>"SELFOSS"</td>
<td>NLRTM13029124</td>
</tr>
<tr>
<td>01.01.2014</font></td>
<td>15:00</font></td>
<td>P6</font></td>
<td>"NEDLLOYD MARITA"</td>
<td>NLRTM13029408</td>
</tr>
<tbody>
<table>
<html>
我必须在java中完成。 如果有人可以通过某种方式来实现这一目标或给出一些提示,那就太棒了。非常感谢。
答案 0 :(得分:1)
您可以使用Java XML库(如Apache AXIOM)来操作XML。但是,由于某些标记未正确关闭,因此您发布的文档不是有效的XML值得一无所知。
根据XML数据的来源,有多种方法让AXIOM构建DOM。
有关详细信息,请参阅AXIOM Quick Start document。从文件构造DOM的以下代码段来自上述快速入门文档:
public void processFile(File file) throws IOException, OMException {
// Create a builder for the file and get the root element
InputStream in = new FileInputStream(file);
OMElement root = OMXMLBuilderFactory.createOMBuilder(in).getDocumentElement();
// Dome some processing...
// Because Axiom uses deferred parsing, the stream must be closed AFTER
// processing the document (unless OMElement#build() is called)
in.close();
}
获得DOM后,您可以使用XPath等工具来查找您希望操作的XML节点(在您的案例中为属性),并将其从DOM中删除。
答案 1 :(得分:1)
尝试使用此
XmlString=XmlString.replaceAll("\\<\\html(.+?)\\?\\>", "").trim();