Docx4j 意外元素(uri:“http://schemas.openxmlformats.org/wordprocessingml/2006/main”,本地:“p”)
Posted
技术标签:
【中文标题】Docx4j 意外元素(uri:“http://schemas.openxmlformats.org/wordprocessingml/2006/main”,本地:“p”)【英文标题】:Docx4j unexpected element (uri:"http://schemas.openxmlformats.org/wordprocessingml/2006/main", local:"p") 【发布时间】:2019-05-22 12:46:33 【问题描述】:我正在尝试将 html 表格添加到另一个单词表格的单元格中。
-
我可以将 html 表格添加到另一个单词表格的单元格中。 (好的)
我可以生成最后一个word文档调用lastDocument.docx(OK)
我无法再次加载
WordprocessingMLPackage.load(lastDocument.docx),抛出这个
异常 Docx4j 意外元素
(uri:"http://schemas.openxmlformats.org/wordprocessingml/2006/main",
本地:“p”)
这是我的代码:
Tr workingRow = (Tr) XmlUtils.deepCopy(templateRow);
List<?> textElements = WMLPackageUtils.getTargetElements(workingRow, Text.class);
List<Tc> tcList = WMLPackageUtils.getTargetElements(workingRow, Tc.class);
Tc tc = WMLPackageUtils.getTc(tcList, "$Replace_Tex1");
XHTMLImporterImpl XHTMLImporter = new XHTMLImporterImpl(wordMLPackage);
XHTMLImporter.setParagraphFormatting(FormattingOption.IGNORE_CLASS);
XHTMLImporter.setTableFormatting(FormattingOption.IGNORE_CLASS);
for (Object object : textElements)
Text text = (Text) object;
if (!text.getValue().equals("$Replace_Tex1"))
continue;
String replacementValue = (String) replacements.get(text.getValue());
//text.setValue(replacementValue);
R r = (R) text.getParent();
r.getContent().clear();
r.getContent().addAll(XHTMLImporter.convert(replacementValue, null));
【问题讨论】:
【参考方案1】:我猜你的问题是:
r.getContent().addAll(XHTMLImporter.convert(replacementValue, null));
在运行中添加 w:p(段落内容),这是不允许的。
你可以解压你的docx来查看word/document.xml
【讨论】:
【参考方案2】:你好,我已经这样修复了我的代码
R r = (R) text.getParent();
P paragraphOfText = wordMLPackage.getMainDocumentPart().createParagraphOfText("");
paragraphOfText.getContent().clear();
r.getContent().clear();eviewtable.getContent().add(new Tr(new Tc(itemTable, new Paragraph())));
tc.getContent().addAll(XHTMLImporter.convert(replacementValue, null));
tc.getContent().add(paragraphOfText);
它正在工作 :) 谢谢@JasonPlutext
【讨论】:
以上是关于Docx4j 意外元素(uri:“http://schemas.openxmlformats.org/wordprocessingml/2006/main”,本地:“p”)的主要内容,如果未能解决你的问题,请参考以下文章
Jaxb UnMarshal 错误:意外元素(uri:“”,本地:“processedSalesOrderTypeList”)。预期的元素是
javax.xml.bind.UnmarshalException:意外元素(uri:“”,本地:“组”)
如何修复:javax.xml.bind.UnmarshalException:意外元素(uri:“”,本地:“目录”)。预期元素是(无)
SOAP:解组错误:意外元素(uri:“”,本地:“lastCallDate”)。预期元素是 <gracePeriod>、<token>
javax.xml.bind.UnmarshalException:意外元素(uri:“”,local:“arg0”)。预期的要素是
cxf webservice抛异常 Unmarshalling Error: 意外的元素 (uri:"http:", local:"say")所需元素为<