【问题标题】:Word Docx mailmerge using xml data and merging using xslt OPENXMLWord Docx mailmerge 使用 xml 数据并使用 xslt OPENXML 合并
【发布时间】:2016-01-11 17:50:46
【问题描述】:

我整天在网上寻找答案,但没有运气;也许有人对我有一个简单的答案?

我创建了一个 Word Docx,我从中提取了 word/document.xml 以创建一个 xslt 文件。

我几乎没有经验,所以这是一个非常陡峭的学习曲线,所以我一直在关注我发现的各种示例,并使用从 SQLServer 作为 XML 生成的数据生成了一个有效的“邮件合并”或转换。

我现在需要执行通常的“邮件合并”操作,例如忽略打印在页面顶部的地址中的任何空白行,但我不知道如何使用我的 xslt 文件或任何其他方法来执行此操作就此而言。

查看 xslt 文件,应该忽略的“段落”的一个示例是:

          <w:p w:rsidR="0067165E" w:rsidRPr="00F841C2" w:rsidRDefault="0067165E">
        <w:pPr>
          <w:rPr>
            <w:sz w:val="20"/>
            <w:lang w:val="en-GB"/>
          </w:rPr>
        </w:pPr>
        <w:r w:rsidRPr="00F841C2">
          <w:rPr>
            <w:sz w:val="20"/>
            <w:lang w:val="en-GB"/>
          </w:rPr>
          <w:t>
            <xsl:value-of select="Address2"/>
          </w:t>
        </w:r>
      </w:p>

因为如果未填充 Address2,我不想打印空行。

根据我所阅读的内容和我所了解的(并且可能被误解)的一点点,我需要设置功能以忽略不包含数据的节点(我说对了吗?)

我可以用这个吗?

<xsl:template match="*[not(child::node())]"/>

以及它如何与

  <xsl:template match="/">

我已经把它放在了我的 xslt 文件的顶部?

如果有人可以帮助我解决这个问题,那将真的有助于推动我前进。 对不起,如果它是如此简单,我应该可以闭着眼睛做,但我必须从某个地方开始!

谢谢

【问题讨论】:

    标签: xml xslt ms-word openxml mailmerge


    【解决方案1】:

    好吧,看来我可能试图找出最简单的方法来做一些非常简单的事情。我对此进行了再看,并通过简单地使用元素并封闭整个部分来回答我自己的问题。

    感谢任何可能花时间看这个的人,很抱歉问了这么愚蠢的问题!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      • 2019-04-05
      相关资源
      最近更新 更多