.docx ファイルの読み取りと解析に docx4j を使用していますが、段落を反復処理すると、すべての段落ではなく 1 回のパスで読み取ります。以下は、私が使用しているコードのサンプルです。
private void replaceAcrAndDef(String acrName, String acrParensName, String oldDef, String newDef){
String XPATH_TO_SELECT_TEXT_NODES = "//w:t";
List<Object> paragraphs = template.getMainDocumentPart().getJAXBNodesViaXPath(XPATH_TO_SELECT_TEXT_NODES, true);
for (Object obj : paragraphs){
Text text = (Text) ((JAXBElement)obj).getValue();
String textValue = text.getValue();
System.out.println(textValue);
}
上記の for ループの 1 回のパス中に、これは最初の段落として読み取られます -
「チームは、ミッション、テスト、管理および一般サービスのネットワークとシステムについて直接 MDA の経験を積むことで、要件を深く理解しています。ミッション、プロセス、および優先事項について確立された理解を持つ、低リスクで応答性の高いチームであることの利点。統合ベースの使用」
しかし、段落の最後の部分がありません。連続パスで出てくるもの。ここで何が間違っていますか。
段落の内容全体は次のとおりです。
チームは、ミッション、テスト、管理および一般サービスのネットワークとシステムの MDA を直接経験することで、要件を深く理解しています。利点は、ミッション、プロセス、および優先事項を十分に理解している、低リスクで反応の良いチームです。統合された情報技術ベースの役割ベースの管理 (RBA) アプローチの使用は、関連請負業者、既存のプロセス、および補完的なプロセスの追加と相乗的に機能します。
段落全体を取得する方法があるかどうかはわかりませんが、段落ごとに文字列の置換を行う必要があるため、それがあれば素晴らしいでしょう。