Word文書の内容を読むためにdocx4jを使用しています。
core.xml には、description
読んでいるドキュメントで変更したいタグがあります。
これを行う最善の方法は何ですか?ドキュメントのコンテンツ全体を読んで、docx4j を使用して新しいドキュメントを作成し、タグを変更する必要がありますか、またはドキュメントのコンテンツを変更および/または読み取り -> コピーせずにタグを変更description
する方法はありますか?description
コア props パーツを取得する方法については、64 行目のサンプルDocProps.javaを参照してください。
次に、次のようなものです。
JAXBElement<SimpleLiteral> desc = coreProps.getDescription();
SimpleLiteral literal = XmlUtils.unwrap(desc);
List<String> contents = literal.getContent();
次に、そのリストを変更します。JAXB でよくあることですが、これはライブ リストであるため、変更はドキュメントのメモリ内表現にすぐに反映されます。
または、新しい JAXBElement<SimpleLiteral> desc2 を作成してから、coreProps.setDescription(desc2) を作成することもできます。これは、まだ dc:description がない docx に対して行うことです。
org.docx4j.docProps.core.dc.elements.ObjectFactory dcFactory = new org.docx4j.docProps.core.dc.elements.ObjectFactory();
SimpleLiteral literal = dcFactory.createSimpleLiteral();
coreProps.setDescription(dcFactory.createDescription(literal));
List<String> contents = literal.getContent();
// populate contents ...
次に、docx を保存します。上記のリンクのサンプルはそれを行います。