4

ねえ、私はVTD-XMLを使用して、文字列として与えられたXMLを解析しようとしていますが、その方法がわかりません。どんな助けでもいただければ幸いです。

http://vtd-xml.sourceforge.net

4

2 に答える 2

5

VTD-XMLライブラリを使用するとバイト配列データを読み取ることができるようです。その場合は、正しいエンコーディングを使用して文字列をバイトに変換することをお勧めします。

XML文字列の先頭にエンコードが通知されている場合:

<?xml version="1.0" encoding="UTF-8"?>

次に、それを使用します。

myString.getBytes("UTF-8")

エンコーディングがない場合は、エンコーディングを使用してください。VTD-XMLはバイトをデコードする方法を知っています。

String withHeader  = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + myString;
byte[] bytes = withHeader.getBytes("UTF-8");
VTDGen vg = new VTDGen();
vg.setDoc(bytes);
vg.parse(true);

後者の場合、メモリ内にある文字列はエンコーディングに依存しないため、任意の有効なエンコーディングを使用できることに注意してください(UTF-16にありますが、バイトを要求すると変換されます)。

于 2010-02-23T14:17:59.283 に答える
2

文字列はUCS-16エンコーディングを意味するため、VTD-XMLは文字列を受け入れません。つまり、実際にはxmlドキュメントではありません。仕様で定義されているように、xmlは通常utf-8、ascii、iso-8859-1でエンコードされます。またはUTF-16LEまたはBE形式...私の答えは意味がありますか?

于 2010-02-23T20:02:28.283 に答える