使用空值属性

时间:2015-06-18 13:28:23

标签: java xml performance xml-parsing

拥有并输入以下格式:

<table>
<tbody>
    <tr bgcolor='#999999'>
        <td nowrap width='1%'>
        </td>
        <td nowrap width='3%' align='center'>
            <font style='font-size: 8pt'> System ID </font>
        </td>
        <td nowrap width='5%' align='center'>   

为了删除 nowrap 属性,之前使用此代码:

    if (deletedString == null)
    {
        return exportedTable;
    }

    int tagPos = 0;
    String resultTable = exportedTable;
    while (resultTable.indexOf(deletedString) != -1)
    {
        tagPos = resultTable.indexOf(deletedString, tagPos);
        String beforTag = resultTable.substring(0, tagPos);
        String afterTag = resultTable.substring(tagPos + deletedString.length());

        resultTable = beforTag + afterTag;
    }
    return resultTable;

deletedString是nowrap,输入是exportTable。 但这会导致性能问题。有没有更好的方法呢?

2 个答案:

答案 0 :(得分:1)

我的建议:StringUtils.remove(source, substring)将从源字符串中删除子字符串的所有实例。 This answer对这种方法进行了基准测试,发现它比一些替代方案快五倍。

或者,使用StringBuilder汇总您的子字符串 - 每次连接两个字符串时,您都会创建一个新字符串,而StringBuilder是可变的,并且不需要创建更新的新副本。

答案 1 :(得分:0)

你可以创建一个xmlstreamreader,并有一个while循环,只要streamreader.hasNext()就可以解析xml。

格式:

//Create stream reader
//Position at beginning of document

//While the stream reader has next (can see next line)
//perform action