ホーム>source

StAXを使用してXMLコントローラークラスを作成しようとしています。 私の問題は、要素の完全な文字列を取得するのではなく、文字列の小さな部分を取得することです。 (一部のコンテンツはセキュリティ上の理由で非表示になっていることに注意してください。これらは {content} として表示されます )

<前>ウィズウィズ

上記のコードは完全な文字列を返しません。

私が受け取ることを期待しているのは:
ウィズウィズ

私が得るものは、5つの個別の部分にある上記の文字列です。
ウィズウィズ
ウィズウィズ
ウィズウィズ
ウィズウィズ
ウィズウィズ 

私のコード:

<前>ウィズウィズ

私のxmlと同様に:

<前>ウィズウィズ Characters characters = event.asCharacters(); if (!characters.isWhiteSpace()) { System.out.println(characters.getData()); }
あなたの答え
  • 解決した方法 # 1

    ウィズウィズ  パーサーは、文字を同じ順序で小さな断片に分割するだけです。 StAX で再構築できます 、安全のために長さチェックも追加しています。または、フラグを設定してデフォルトで結合することもできます。

    ウィズウィズ

    参照:

    StAXがCHARACTERイベントを壊さないようにする

  • 解決した方法 # 2

    XMLStreamConstants.START_ELEMENTのみのテキストがある場合は、http://docs.oracle.com/javase/7/docs/api/javax/xml/stream/XMLEventReader.html#getElementText()を呼び出すことができます。

    StringBuilder

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ angular - xxxserviceのすべてのパラメーターを解決できません