私は、Java を使用して TCP ポートに接続し、XML ドキュメントを次々とストリーミングする立場にあり、それぞれ<?xml
がドキュメントタグの開始で区切られています。フォーマットを示す例:
<?xml version="1.0"?>
<person>
<name>Fred Bloggs</name>
</person>
<?xml version="1.0"?>
<person>
<name>Peter Jones</name>
</person>
私はorg.xml.sax.*
アピを使用しています。SAX 構文解析は、最初のドキュメントでは完全に機能しますが、2 番目のドキュメントの先頭に到達すると例外がスローされます。
Exception in thread "main" org.xml.sax.SAXParseException: The processing instruction
target matching "[xX][mM][lL]" is not allowed.
次のスケルトン クラスは、私が使用しているセットアップを示しています。
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.helpers.XMLReaderFactory;
import java.io.FileReader;
public class XMLTest extends DefaultHandler {
public XMLTest() {
super();
}
public static void main(String[] args) throws Exception {
XMLReader xr = XMLReaderFactory.createXMLReader();
XMLTest handler = new XMLTest();
xr.setContentHandler(handler);
xr.setErrorHandler(handler);
xr.parse(new InputSource(new Socket("127.0.0.1", 4555).getInputStream()));
}
}
xml の形式 (財務データ フィード) を制御することはできませんが、効率的に解析し、すべてのドキュメントを解析できるようにする必要があります。私は午後/夕方にさまざまなことを試しましたが、結果は得られませんでした. どんな助けでも大歓迎です。