是否有可能在Openedge ABL的过程中做到这一点?我已经有了公司= A的代码。
dataset dsOut:写-xml(“FILE”,dTempXmlFile,true,"UTF-8")。
如果Company =A,则这是xml
<?xml version="1.0" encoding="UTF-8"?>
<LoadNotification>
<LoadID>10167</LoadID>
<ShipmentTransferNumber>2320373</ShipmentTransferNumber>
</LoadNotification>否则,如果Company =B,则这是xml (注意出现了一个额外的节点)
<?xml version="1.0" encoding="UTF-8"?>
<LoadNotification>
<LoadID>10167</LoadID>
<RetailID>AMZN</RetailID>
<ShipmentTransferNumber>2320373</ShipmentTransferNumber>
</LoadNotification>我想避免A公司的自闭标签。我不想在A公司向<RetailID/>展示
<?xml version="1.0" encoding="UTF-8"?>
<LoadNotification>
<LoadID>10167</LoadID>
<RetailID/>
<ShipmentTransferNumber>2320373</ShipmentTransferNumber>
</LoadNotification>发布于 2022-10-12 20:27:45
写xml方法有第九个参数omit-initial-values。如果您能够确保您的RetailID在公司为A时匹配初始值(或重置它),那么它将在输出中被跳过。
define temp-table tt
field ii as int
field cc as char initial ?
.
define dataset ds for tt.
def var lcxml as longchar.
create tt. assign tt.ii = 1 tt.cc = 'one'.
create tt. assign tt.ii = 2. // no cc
dataset ds:write-xml( 'longchar', lcxml, true, 'utf-8', ?, ?, ?, ?, true ).
message string( lcxml ).看着它在ABL Dojo上运行,否则在这里输出:
<?xml version="1.0" encoding="utf-8"?>
<ds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tt>
<ii>1</ii>
<cc>one</cc>
</tt>
<tt>
<ii>2</ii>
</tt>
</ds>https://stackoverflow.com/questions/74046906
复制相似问题