Docx4j 在 Word 文档中默认写入 XML
Docx4j writes XML as default in a Word document
我正在尝试通过使用以下代码替换 Word 模板中的变量来将简单文本 (String) 写入 Word 文档:
MainDocumentPart documentPart = template.getMainDocumentPart();
try {
documentPart.variableReplace(replaceHashMap);
} catch (JAXBException e) {
e.printStackTrace();
} catch (Docx4JException e) {
e.printStackTrace();
}
在我的 Main class 中,我有这样的东西:
for( StringWriter sw : wsdlHelper.getWSDLTemplateRequest() )
{
document.addHashMapping("API REQUEST", sw.toString().replace("<", "#1#").replace(">", "#2#"));
}
出于测试目的,我将字符串“<”替换为“#1#”,将“>”替换为“#2#”,并且效果完美。
但是如果我删除这些替换,Docx4j 会将字符串解释为 XML,有时甚至会通知未关闭的标签,并且在所选变量 (API REQUEST) 的位置输出文档是空!
我只需要将其解释为字符串并以纯文本形式写入 Word 文档 "as is"。
我正在尝试将Webservice的请求模板写成简单的文本,有没有办法直接在文档中漂亮地打印出来?
您的文档应包含 ${VAR} 形式的变量。
文档被编组为一个字符串(包含 XML)。
${VAR} 形式的子字符串随后将替换为您指定的内容。
通常是简单的文本,而不是 XML。如果您希望尖括号“<”出现在输出中,请使用 <
然后对结果进行解组。意外内容已删除。
我正在尝试通过使用以下代码替换 Word 模板中的变量来将简单文本 (String) 写入 Word 文档:
MainDocumentPart documentPart = template.getMainDocumentPart();
try {
documentPart.variableReplace(replaceHashMap);
} catch (JAXBException e) {
e.printStackTrace();
} catch (Docx4JException e) {
e.printStackTrace();
}
在我的 Main class 中,我有这样的东西:
for( StringWriter sw : wsdlHelper.getWSDLTemplateRequest() )
{
document.addHashMapping("API REQUEST", sw.toString().replace("<", "#1#").replace(">", "#2#"));
}
出于测试目的,我将字符串“<”替换为“#1#”,将“>”替换为“#2#”,并且效果完美。
但是如果我删除这些替换,Docx4j 会将字符串解释为 XML,有时甚至会通知未关闭的标签,并且在所选变量 (API REQUEST) 的位置输出文档是空!
我只需要将其解释为字符串并以纯文本形式写入 Word 文档 "as is"。 我正在尝试将Webservice的请求模板写成简单的文本,有没有办法直接在文档中漂亮地打印出来?
您的文档应包含 ${VAR} 形式的变量。
文档被编组为一个字符串(包含 XML)。
${VAR} 形式的子字符串随后将替换为您指定的内容。
通常是简单的文本,而不是 XML。如果您希望尖括号“<”出现在输出中,请使用 <
然后对结果进行解组。意外内容已删除。