当前位置: 首页 > 知识库问答 >
问题:

docx4j-从XmlUtils.marshalToString()省略的节点

沈思博
2023-03-14

使用XMLUtils。marshalToString()从docx4j,我在两个docx文件中的相同位置有以下内容(解压.docx后从相应的word/document.xml中提取)。以下是这些文件之间的唯一区别:

 <w:t xml:space="preserve">New line.  First is </w:t>

 <w:t xml:space="preserve">
 <w:r>
 <w:t xml:space="preserve">New line.</w:t>
 </w:r>
 <w:r>
 <w:t xml:space="preserve">  First is </w:t>
 </w:r>
 </w:t>

在第一个文档中,

但是,在第二个中,一个空的


   <w:t xml:space="preserve"></w:t>

我在上查看了w:t模式http://www.schemacentral.com/sc/ooxml/e-w_p-1.html并且w:r是一个有效的包含元素。

编辑:上面的链接是w:p元素的模式,而不是w:tw:t的正确链接是:http://www.schemacentral.com/sc/ooxml/e-w_t-1.html.它清楚地显示了w:t唯一可接受的内容是字符串(而不是w:r或任何其他标记)。因此(正如Jason在下面的回答所建议的),XML来自文档。xml无效,并且(因此)没有被解封到docx4j中。因此,XmlUtils无法输出文本。MarshallToString()。

是什么阻止了第二个块的输出?


共有1个答案

宋原
2023-03-14

你可以信任MarshallToString。

如果它返回的是一个空的w: t,那是因为底层的org.docx4j.wml.Text对象有一个null或空值字段。

您需要查看应该填充它的任何代码。

 类似资料:
  • 省略 不推荐省略 0 值单位,原因如下: CSS 规范中可以省略单位只有 [<length-percentage>](https://drafts.csswg.org/css-values-3/#typedef-length-percentage),其他比如角度单位 deg 在 Chrome 中可以省略, 这是浏览器的 Bug。 注:可以省略的单位包括:%|em|ex|ch|rem|vw|vh|v

  • 本文向大家介绍C++ 参数省略,包括了C++ 参数省略的使用技巧和注意事项,需要的朋友参考一下 示例 当将参数传递给函数时,参数是函数参数类型的prvalue表达式,而该类型不是引用,则可以忽略prvalue的构造。 这表示要创建一个临时文件string,然后将其移动到function参数中str。复制省略允许该表达式直接在中创建对象str,而不是使用临时+移动。 这对于声明构造函数的情况非常有用

  • 问题内容: 自从Firefox Nightly(35.0a1)的最新(?)版本以来,我一直在使用的flexbox容器内部遇到问题,每个列的宽度为50%。 演示: 在“每晚”中,文本将泄漏到其容器外部,并且不会在末尾附加。在Chrome和Firefox稳定版中,它可以按预期工作。 问题答案: 最终可以追溯到Firefox Nightly中的最新更改。长话短说,选择器上的设置将使其按预期工作。 在这里

  • 问题内容: 第二行的CSS ,这可能吗?我在网上找不到。 例: 我想要的是这样的: 但这是怎么回事: 问题答案: 工作要求是(,等)的单行版本。这意味着文本永远不会到达第二行。 嗯 在纯CSS中不可能。 编辑 如果优秀的CSS众神将实现我们可以使用(new)和(new)在纯CSS中进行模糊处理。 编辑2 WebKit / Blink具有:将省略号放在第二行。

  • 有些生命周期的模式太过普遍了,所以借用检查器将会隐式地添加它们来以减少字母输入和增强可读性。这种隐式添加生命周期的过程称为省略(elision)。在 Rust 使用省略仅仅是因为这些模式太普遍了。 下面代码展示了一些省略的例子。对于省略的详细描述,可以参考官方文档的 生命周期省略。 // `elided_input` 和 `annotated_input` 本质上拥有相同的识别标志,是因为 //

  • 本文向大家介绍C++ 返回值省略,包括了C++ 返回值省略的使用技巧和注意事项,需要的朋友参考一下 示例 如果从函数返回prvalue表达式,并且prvalue表达式的类型与函数的返回类型相同,则可以忽略prvalue临时对象的副本: 在这种情况下,几乎所有编译器都将忽略临时构造。