为什么不是';t Word中的字符格式显示为XML

本文关键字:字符 格式 显示 XML Word 为什么不 | 更新日期: 2023-09-27 18:21:52

我目前使用.docx格式的Microsoft Word文件(仅供参考:我将格式从.doc转换为.docx)。我所需要做的就是读取文件以从中获取一些信息。我使用OpenXml,到目前为止它运行得很好。

但是有一些文件在Word文档中有粗体文本,但当我查看内部XML时,我找不到标记,如果我浏览它,文本或单个元素也没有粗体属性。因此,我再次无法匹配所需信息的模式。

是否有其他标签或其他任何可能导致该问题的东西?我还认为问题可能是文本缩进。但我已经改变了,仍然没有结果。

这是没有任何更改的XML。文本为"Artikel anzigen(og)":

<w:pPr xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <w:pStyle w:val="PosText" />
  <w:ind w:left="-6" />
  <w:rPr>
    <w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" />
    <w:sz w:val="20" />
  </w:rPr>
</w:pPr>
<w:r xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <w:rPr>
    <w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" />
    <w:sz w:val="20" />
  </w:rPr>
  <w:t xml:space="preserve">Artikel anzeigen </w:t>
</w:r>
<w:r w:rsidRPr="00185315" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <w:rPr>
    <w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" />
    <w:sz w:val="20" />
  </w:rPr>
<w:t>(</w:t></w:r>
<w:r xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <w:rPr>
    <w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" />
    <w:sz w:val="20" />
  </w:rPr>
  <w:t>og</w:t>
</w:r>
<w:r w:rsidRPr="00185315" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <w:rPr>
    <w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" />
    <w:sz w:val="20" />
  </w:rPr>
  <w:t>)</w:t>
</w:r>

我不知道如何测试粗体属性。有人能帮忙吗?

为什么不是';t Word中的字符格式显示为XML

字符格式可以在OOXML中的许多级别上定义。

在您的情况下,它没有直接定义,但可能是引用的PosText样式的一部分,

<w:pStyle w:val="PosText" />

但在您提供的XML摘录中没有定义。


更新:您在自我回答中提到的解决方法可以理解如下:Formatübertragen命令是英文的Format Painter。应用"Format Painter"可以将格式样式直接转移到段落或文本段,从而避免您不得不通过命名样式间接查找引用。

更新2:缩进XML后,PosText可能不在作用域中,但原则仍然存在:包含w:rw:p的另一个样式(未显示)可能具有影响相关文本格式的类似样式。

好吧,在我打开问题后不久发布一个答案有点有趣,但我找到了解决问题的方法。因此,以下是我的解决方案,以防有人遇到同样的问题:

在Word中,我用正确的格式标记了文本,然后点击按钮"传输格式"(德语版中是"formatübertragen",我不确定这里的正确翻译是什么),然后我标记了不正确的文本,只要你放开鼠标,它就会将格式更改为正确的格式(如果你标记了正确的格式)。

我真的不知道为什么需要这样做,但现在它在XML中被标记为粗体。