Excel 到 XML 命名空间前缀自定义
Posted
技术标签:
【中文标题】Excel 到 XML 命名空间前缀自定义【英文标题】:Excel to XML Namespace Prefix Customization 【发布时间】:2016-07-19 16:18:40 【问题描述】:我正在使用 Excel 2013 通过 XML 映射将数据从电子表格转换为 XML 格式。转换效果很好,但 Excel 将输出文件中的所有 XML 命名空间前缀默认为“ns1”,如下面的代码所示。
XML 到 Excel 转换
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns1:CarrierInterface xmlns:ns1="http:/exampleurl.com/">
<ns1:Sender>sender</ns1:Sender>
<ns1:Receiver>receiver</ns1:Receiver>
<ns1:RecordCount>1</ns1:RecordCount>
<ns1:SequenceID>143</ns1:SequenceID>
<ns1:Device>
<ns1:ID>123456789</ns1:ID>
<ns1:Make>make</ns1:Make>
<ns1:Model>model</ns1:Model>
<ns1:ModelYear>2017</ns1:ModelYear>
<ns1:DeviceWiFiType>True</ns1:DeviceWiFiType>
<ns1:PairingState>Initial</ns1:PairingState>
</ns1:Device>
</ns1:CarrierInterface>
期望的输出
<?xml version="1.0" encoding="UTF-8"?>
<carrierInterface:CarrierInterface xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:carrierInterface="http:/exampleurl.com/" xsi:schemaLocation="http:/exampleurl.com/">
<carrierInterface:Sender>sender</carrierInterface:Sender>
<carrierInterface:Receiver>receiver</carrierInterface:Receiver>
<carrierInterface:RecordCount>1</carrierInterface:RecordCount>
<carrierInterface:SequenceID>143</carrierInterface:SequenceID>
<carrierInterface:Device>
<carrierInterface:ID>123456789</carrierInterface:ICCID>
<carrierInterface:Make>make</carrierInterface:Make>
<carrierInterface:Model>model</carrierInterface:Model>
<carrierInterface:ModelYear>2017</carrierInterface:ModelYear>
<carrierInterface:DeviceWiFiType>True</carrierInterface:DeviceWiFiType>
<carrierInterface:PairingState>Initial</carrierInterface:PairingState>
</carrierInterface:Device>
</carrierInterface:CarrierInterface>
是否有人知道无需编写宏即可自定义这些命名空间前缀的简单方法?另外,有谁知道为什么 Excel 会删除为 CarrierInterface 的命名空间定义给出的 URL,如下行所示?
期望的输出
<carrierInterface:CarrierInterface xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:carrierInterface="http:/exampleurl.com/" xsi:schemaLocation="http:/exampleurl.com/">
实际输出
<ns1:CarrierInterface xmlns:ns1="http:/exampleurl.com/">
【问题讨论】:
【参考方案1】:命名空间前缀名称本身无关紧要;只有通过绑定到命名空间值,它们才能获得意义。
没有符合标准的 XML 处理器关心正在使用的特定命名空间前缀,您也不应该关心它——重要的是命名空间值。
【讨论】:
@user2988717:我接受你为“生活在现实世界中”而道歉,但这个答案适用于这个现实世界。如果您对其他世界有疑问,请发布一个适当的问题,而不是隐藏在一个表达不佳的查询中隐藏在无礼评论中的弱挖掘。谢谢。以上是关于Excel 到 XML 命名空间前缀自定义的主要内容,如果未能解决你的问题,请参考以下文章