Ms word 条件合并字段打开XML SDK

Ms word 条件合并字段打开XML SDK,ms-word,openxml,openxml-sdk,mailmerge,Ms Word,Openxml,Openxml Sdk,Mailmerge,我已经到处查看了,似乎找不到任何关于使用OpenXMLSDK进行邮件合并(针对条件字段)的合适信息 我们有一个条件合并字段,因此由其他合并字段组成: , «C2TITLE» «C2FORE» «C2SUR» 基本上等同于: IF mergefield C2TITLE «C2TITLE» <> "" ", mergefield C2TITLE «C2TITLE» mergefield C2FORE «C2FORE» mergefield C2SUR «C2SUR»" "" 但是

我已经到处查看了,似乎找不到任何关于使用OpenXMLSDK进行邮件合并(针对条件字段)的合适信息

我们有一个条件合并字段,因此由其他合并字段组成:

,  «C2TITLE» «C2FORE» «C2SUR»
基本上等同于:

IF mergefield C2TITLE «C2TITLE» <> "" ", mergefield C2TITLE «C2TITLE»  mergefield C2FORE «C2FORE» mergefield C2SUR «C2SUR»" ""
但是在XML的分解(通过Vs2012手表)中,我们可以看到合并很好,但是3个字段也重复了,有人对此有解释吗

如果有人能给我指出正确的方向,我将不胜感激

--编辑添加的XML--


如果
合并字段名称
«C2TITLE»
"" ",  
合并字段名称
«C2TITLE»
合并域C
2孔
«C2FORE»
合并域C2SUR
«C2SUR»
" "" 
,  
合并字段名称
«C2TITLE»
合并字段C2FORE
«C2FORE»
合并域C2SUR
«C2SUR»

如果看不到原始XML很难确定,“重复”的一个可能原因是“mergefield C2TITLE”是合并代码(即在Word中查看字段代码时显示为{mergefield C2TITLE},«C2TITLE»是默认的mergefield结果(即,当您查看字段结果时看到的部分,但不是在预览模式下。但是您是在插入«C2TITLE»,还是在现有文档中看到它。谢谢,这有点道理,如果有帮助的话-我已经添加了XML,嗯,有问题的部分OK,我创建了一个简单的.docx,其中包含MERGEFIELDs以查看Word生成的XML,以及(a)对于{MERGEFiELD}在IF外部,Word生成的XML与您的/except/类似,它使用«C2TITLE»而不是«C2TITLE»。在IF内部,它更像:1可能Word在某些情况下需要,但在其他情况下,例如在v外部,在嵌套字段内部,或者在通过fldSimple定义的字段内部,而不是在复杂字段代码中。@bibadiak:谢谢您提供的信息,但您知道吗w为什么我们(我与发布原始问题的斯图尔特合作)在两个方面都看到了相同的合并域。我本来希望看到其中一个,而不是两个。看看ISO规范,在这种情况下似乎应该被视为无论如何。规范有时可能有点模糊。或者可能是Word弄错了。
mergefield C2TITLE «C2TITLE»
<w:p w:rsidR="00000000" w:rsidRDefault="009621F8" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <w:r>
    <w:fldChar w:fldCharType="begin" />
  </w:r>
  <w:r>
    <w:instrText xml:space="preserve"> IF </w:instrText>
  </w:r>
  <w:r>
    <w:fldChar w:fldCharType="begin" />
  </w:r>
  <w:r>
    <w:instrText xml:space="preserve"> mergefield C2TITLE </w:instrText>
  </w:r>
  <w:r>
    <w:fldChar w:fldCharType="separate" />
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:instrText>«C2TITLE»</w:instrText>
  </w:r>
  <w:r>
    <w:fldChar w:fldCharType="end" />
  </w:r>
  <w:r>
    <w:instrText xml:space="preserve">&lt;&gt; "" ",  </w:instrText>
  </w:r>
  <w:r>
    <w:fldChar w:fldCharType="begin" />
  </w:r>
  <w:r>
    <w:instrText xml:space="preserve"> mergefield C2TITLE </w:instrText>
  </w:r>
  <w:r>
    <w:fldChar w:fldCharType="separate" />
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:instrText>«C2TITLE»</w:instrText>
  </w:r>
  <w:r>
    <w:fldChar w:fldCharType="end" />
  </w:r>
  <w:r>
    <w:instrText xml:space="preserve"> </w:instrText>
  </w:r>
  <w:r>
    <w:fldChar w:fldCharType="begin" />
  </w:r>
  <w:r>
    <w:instrText xml:space="preserve"> mergefield C</w:instrText>
  </w:r>
  <w:r>
    <w:instrText xml:space="preserve">2FORE </w:instrText>
  </w:r>
  <w:r>
    <w:fldChar w:fldCharType="separate" />
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:instrText>«C2FORE»</w:instrText>
  </w:r>
  <w:r>
    <w:fldChar w:fldCharType="end" />
  </w:r>
  <w:r>
    <w:instrText xml:space="preserve"> </w:instrText>
  </w:r>
  <w:r>
    <w:fldChar w:fldCharType="begin" />
  </w:r>
  <w:r>
    <w:instrText xml:space="preserve"> mergefield C2SUR </w:instrText>
  </w:r>
  <w:r>
    <w:fldChar w:fldCharType="separate" />
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:instrText>«C2SUR»</w:instrText>
  </w:r>
  <w:r>
    <w:fldChar w:fldCharType="end" />
  </w:r>
  <w:r>
    <w:instrText xml:space="preserve">" "" </w:instrText>
  </w:r>
  <w:r>
    <w:fldChar w:fldCharType="separate" />
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:t xml:space="preserve">,  </w:t>
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:fldChar w:fldCharType="begin" />
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:instrText xml:space="preserve"> mergefield C2TITLE </w:instrText>
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:fldChar w:fldCharType="separate" />
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:t>«C2TITLE»</w:t>
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:fldChar w:fldCharType="end" />
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:t xml:space="preserve"> </w:t>
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:fldChar w:fldCharType="begin" />
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:instrText xml:space="preserve"> mergefield C2FORE </w:instrText>
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:fldChar w:fldCharType="separate" />
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:t>«C2FORE»</w:t>
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:fldChar w:fldCharType="end" />
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:t xml:space="preserve"> </w:t>
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:fldChar w:fldCharType="begin" />
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:instrText xml:space="preserve"> mergefield C2SUR </w:instrText>
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:fldChar w:fldCharType="separate" />
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:t>«C2SUR»</w:t>
  </w:r>
  <w:r>
    <w:rPr>
      <w:noProof />
    </w:rPr>
    <w:fldChar w:fldCharType="end" />
  </w:r>
  <w:r>
    <w:fldChar w:fldCharType="end" />
  </w:r>
</w:p>