- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 docx4j 来处理 Microsoft Word 模板。我想知道如何删除或隐藏模板中的 P 元素。我能够遍历代码以获得特定的 P 元素,现在我需要知道如何删除或隐藏该 P 元素。谁能帮忙?我使用以下代码获取所有 P 元素:
private static List<Object> getAllElementFromObject(Object obj, Class<?> toSearch) {
List<Object> result = new ArrayList<Object>();
if (obj instanceof JAXBElement) obj = ((JAXBElement<?>) obj).getValue();
if (obj.getClass().equals(toSearch))
result.add(obj);
else if (obj instanceof ContentAccessor) {
List<?> children = ((ContentAccessor) obj).getContent();
for (Object child : children) {
result.addAll(getAllElementFromObject(child, toSearch));
}
}
return result;
}
private void replaceTextValue_P(WordprocessingMLPackage template ) throws Exception{
List<Object> texts = getAllElementFromObject(template.getMainDocumentPart(), P.class);
// List<Object> pCon = new ArrayList<Object>();
for (Object text : texts) {
P textElement = (P) text;
template.getMainDocumentPart().getContent().remove(textElement); // DOES NOT WORK!
writeDocxToStream(template, "C:\\Temp\\Target.docx");
}
}
private void writeDocxToStream(WordprocessingMLPackage template, String target) throws IOException, Docx4JException {
File f = new File(target);
template.save(f);
}
最佳答案
如果你想删除一个P
(即textElement instanceof P
),你只需将它从包含列表中删除,即
template.getMainDocumentPart().getContent().remove(textElement )
但我认为你的意思是删除文本内容。
工作方式相同,即:
p.getContent().remove(textElement )
看着:
public void replaceElement(Object current, List insertions) {
int index = content.indexOf(current);
if (index > -1 ) {
content.addAll(index+1, insertions);
Object removed = content.remove(index);
// sanity check
if (!current.equals(removed)) {
log.error("removed wrong object?");
}
} else {
// Not found
log.error("Couldn't find replacement target.");
}
}
如果您传入的当前 Object
仅匹配包装在 JAXBElement
中的内容,则该方法将无法正常工作。它需要一个小的修复来解决这种情况。
关于java - docx4j - 删除 wml P 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28026290/
是否不再使用 WML 和 WMLScripts 了? 我记得在服务器端使用 Classic-asp 编写 WML 应用程序,我们使用 WMLScript 和 WTAI 与来自客户端的电话功能进行交互,
我正在开发一个用 WML 实现的移动网络应用程序(以尽量减少与服务器的往返)。 我已经在以下浏览器上测试了该应用程序: Windows Mobile 5 的 IE Windows Mobile 6 的
令我惊讶的是,我找不到这个问题的简短而明确的答案。 WAP/WML 仍然适用于当今的移动网络/应用程序开发吗? 问候, 米兰科 最佳答案 WML 已过时,仅被极少数(<5%,可能更少)的事件移动设备使
我们正在开发一个应该可以从手机访问的网络应用程序。 它涉及一个简单的纯文本树目录。 为了避免在单击树项时额外往返服务器以伸展树(Splay Tree)项,我决定使用 WML . 它允许预加载多个 在一
使用当今的现代手机,是否仍然值得使用 WML 编写网站的移动版本? 大多数移动浏览器即使使用了几年也能正常处理常规 HTML。使用 WML,您显然可以更好地控制显示的内容和不显示的内容,而不必担心它不
我正在使用 docx4j 来处理 Microsoft Word 模板。我想知道如何删除或隐藏模板中的 P 元素。我能够遍历代码以获得特定的 P 元素,现在我需要知道如何删除或隐藏该 P 元素。谁能帮忙
一些背景 我目前正在开发一个移动网站,因此我一直在 Firefox 中使用 User Agent switcher 切换用户代理。 (可爱的插件)。但是当我转到管理站点时,它呈现为 WML ,这让 F
海友们, 我现在有疑问, Has Android really replaced J2ME and WML? If Android has replaced these, then please te
Fetch as Google 为 Googlebot 类型提供了 3 种移动选项,移动智能手机与 xHTML/WML 与 cHTML。有什么区别,如果我将索引作为一种类型提交,它会自动为其他类型提交
我尝试通过在 Watson studio 上训练 MNIST 数据集来部署 Keras 模型,但无法保存并成功部署它。 当我尝试保存模型对象时,它说无法保存顺序对象。当我尝试将 hd5 转换为 tgz
我想根据 wml.xsd 中定义的架构验证给定的 Word 2007 XML 文件。用Java怎么能做到呢?使用以下行加载架构不是问题。但似乎我必须调整验证过程,因为即使在有效的输入文件上我也会收到错
我是一名优秀的程序员,十分优秀!