【发布时间】:2015-08-15 00:25:05
【问题描述】:
我有这个 XML 文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns3:BOX xmlns="urn:loc.gov:item"
xmlns:ns2="urn:loc.gov:box"
xmlns:ns3="http://www.example.com/inverter"
xmlns:ns4="urn:loc.gov:xyz">
<ns3:Item>
<Description>ITEM1</Description>
<PackSizeNumeric>6</PackSizeNumeric>
<ns2:BuyersItemIdentification>
<ID>75847589</ID>
</ns2:BuyersItemIdentification>
<ns2:CommodityClassification>
<CommodityCode>856952</CommodityCode>
</ns2:CommodityClassification>
<ns2:AdditionalItemProperty>
<Name>Weight</Name>
<Value>0</Value>
</ns2:AdditionalItemProperty>
<ns2:AdditionalItemProperty>
<Name>Tare</Name>
<Value>0</Value>
</ns2:AdditionalItemProperty>
<ns2:ManufacturerParty>
<ns2:PartyIdentification>
<ID>847532</ID>
</ns2:PartyIdentification>
</ns2:ManufacturerParty>
</ns3:Item>
<ns3:Item>
<Description>ITEM2</Description>
<PackSizeNumeric>10</PackSizeNumeric>
<ns2:BuyersItemIdentification>
<ID>9568475</ID>
</ns2:BuyersItemIdentification>
<ns2:CommodityClassification>
<CommodityCode>348454</CommodityCode>
</ns2:CommodityClassification>
<ns2:AdditionalItemProperty>
<Name>Weight</Name>
<Value>0</Value>
</ns2:AdditionalItemProperty>
<ns2:AdditionalItemProperty>
<Name>Tare</Name>
<Value>0</Value>
</ns2:AdditionalItemProperty>
<ns2:ManufacturerParty>
<ns2:PartyIdentification>
<ID>7542125</ID>
</ns2:PartyIdentification>
</ns2:ManufacturerParty>
</ns3:Item>
</ns3:BOX>
我正在尝试将其转换为 CSV 文件。
我得到了内容:
[xml]$inputFile = Get-Content test.xml
然后我导出为 CSV:
$inputfile.BOX.childnodes | Export-Csv "Stsadm-EnumSites.csv" -NoTypeInformation -Delimiter:";" -Encoding:UTF8
我得到了 Description 和 PackSizeNumeric 字段,但没有得到其他字段:
"Description";"PackSizeNumeric";"BuyersItemIdentification";"CommodityClassification";"AdditionalItemProperty";"ManufacturerParty"
"ITEM1";"6";"System.Xml.XmlElement";"System.Xml.XmlElement";"System.Object[]";"System.Xml.XmlElement"
"ITEM2";"10";"System.Xml.XmlElement";"System.Xml.XmlElement";"System.Object[]";"System.Xml.XmlElement"
获取包含在其他命名空间中的字段的最佳方式是什么?
我想要这个
"Description";"PackSizeNumeric";"BuyersItemIdentification";"CommodityClassification";"Weight";"Tare";PartyIdentification
"ITEM1";"6";"75847589";"856952";"0";"0";"847532"
"ITEM2";"10";"9568475";"348454";"0";"0";"7542125"
【问题讨论】:
-
显示想要的结果。
-
我更正了我的问题
-
您的问题与 XML 命名空间无关。 Export-Csv 在将复杂对象转换为文本时遇到了麻烦。所有复杂元素在您的 XML 中都有命名空间只是巧合。
-
是的,你需要迭代。但是,为了简化迭代,您似乎需要一个命名空间管理器
-
@PetSerAl 你能帮我找到正确的方向吗?我可以试试别的吗?
标签: xml powershell csv data-conversion