3

我需要从另一个程序生成的文件中删除非 xml 标记。

该文件是这样的:

Executing Command - Blah.exe ...
-----Command Output-----
HTTP/1.1 200 OK
Connection: close
Content-Type: text/xml

<?xml version="1.0"?>
<testResults>
  <finalCounts>
    <right>7</right>
    <wrong>4</wrong>
    <ignores>0</ignores>
    <exceptions>0</exceptions>
  </finalCounts>
</testResults>

Exit-Code: 15

如何在java中轻松删除非xml文本?

4

2 回答 2

8
// getContent() returns the complete text to strip.
//
String s = getContent();

// Find the start of the XML content using the <?xml prefix.
//
int xmlIndex = s.indexOf( "<?xml" );

// Strip the non-XML header.
//
s = s.substring( xmlIndex );

// Find the last closing angle-bracket; should indicate end of the XML.
//
xmlIndex = s.lastIndexOf( ">" );

// Strip everything after the closing angle-bracket.
//
s = s.substring( 0, xmlIndex );
于 2010-04-20T20:26:43.210 回答
4

这看起来像是直接的 HTTP 输出......所以只需扫描前两个连续的换行符(可能在它们前面带有回车符)就会给你想要过滤掉的前缀的结尾。

于 2010-04-20T20:29:19.310 回答