我正在使用OpenXml SDK生成word 2013文件。我在服務器上運行(服務器解決方案的一部分),所以自動化不是一種選擇。如何在Word OpenXml零件中映射到可選數據時使節成爲可選項?
基本上我有一個從後端系統輸出的xml文件。這裏是一個非常簡化的例子:
<my:Data
xmlns:my="https://schemas.mycorp.com">
<my:Customer>
<my:Details>
<my:Name>Customer Template</my:Name>
</my:Details>
<my:Orders>
<my:Count>2</my:Count>
<my:OrderList>
<my:Order>
<my:Id>1</my:Id>
<my:Date>19/04/2017 10:16:04</my:Date>
</my:Order>
<my:Order>
<my:Id>2</my:Id>
<my:Date>20/04/2017 10:16:04</my:Date>
</my:Order>
</my:OrderList>
</my:Orders>
</my:Customer>
</my:Data>
然後我用Word的XML映射窗格中映射該數據內容控制:
我簡單地複製Word文件,並寫入新的XML數據時生成新文件。
這是按預期工作。當我更新xml部分時,它反映了我後端的數據。
想到了,有一種情況是行不通的。如果客戶沒有訂單,則模板內容保存在文檔中。 xml數據爲:
<my:Data
xmlns:my="https://schemas.mycorp.com">
<my:Customer>
<my:Details>
<my:Name>Some customer</my:Name>
</my:Details>
<my:Orders>
<my:Count>0</my:Count>
<my:OrderList>
</my:OrderList>
</my:Orders>
</my:Customer>
</my:Data>
(請參閱空的順序列表)。
在Word中,XML窗格反映了正確的數據(即沒有訂節點):
但正如你所看到的,模板內容還在這裏。
基本上,我想隱藏的命令列表時有沒有訂單(或至少一個空表)。
我該怎麼做?
PS:如果它可以幫助,我上傳的文字和XML文件,並注入數據小PowerShell腳本:repro.zip
當然 - 請上傳文檔。 – Taterhead
@Taterhead:voilà,已上傳 –