XML Data to Flat Array
i've got an (maybe) simple Problem but i'm currently not able to solve it.
I've got an formated XML String like this:
<?xml version="1.0" encoding="utf-8"?>
<e5Notification xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xml.element5.com/2.3/ordernotification.xsd">
<OrderNotification>
<Purchase>
<PurchaseId>391489835</PurchaseId>
<PurchaseDate>2011-09-17T11:37:52</PurchaseDate>
<PurchaseOrigin>online</PurchaseOrigin>
<PaymentCompleteDate>2011-09-17T11:37:52</PaymentCompleteDate>
<PaymentStatus>test payment arrived</PaymentStatus>
<CustomerData>
<BillingContact>
<LastName>User</LastName>
<FirstName>Test</FirstName>
<Email>nix@inter.net</Email>
<Address>
<Street1>Musterweg 123</Street1>
<City>Musterhausen</City>
<PostalCode>12345</PostalCode>
<CountryId>DE</CountryId>
<Country>Deutschland</Country>
</Address>
</BillingContact>
<DeliveryContact>
<LastName>User</LastName>
<FirstName>Test</FirstName>
<Email>nix@inter.net</Email>
<Address>
<Street1>Musterweg 123</Street1>
<City>Musterhausen</City>
<PostalCode>12345</PostalCode>
<CountryId>DE</CountryId>
<Country>Deutschland</Country>
</Address>
</DeliveryContact>
<CustomerPaymentData>
<PaymentMethod>Visa</PaymentMethod>
<Currency>EUR</Currency>
</CustomerPaymentData>
<Language>Deutsch</Language>
<RegName>Test User</RegName>
<SubscribeNewsletter>false</SubscribeNewsletter>
</CustomerData>
<PurchaseItem>
<RunningNo>1</RunningNo>
<ProductId>1234567896</ProductId>
<ProductName>Test-Product</ProductName>
<NotificationNo>0</NotificationNo>
<DeliveryType>Electronically</DeliveryType>
<Currency>EUR</Currency>
<Quantity>1</Quantity>
<ProductSinglePrice>192.44</ProductSinglePrice>
<VatPct>19.00</VatPct>
<Discount>0.00</Discount>
<ExtendedDownloadPrice>0.00</ExtendedDownloadPrice>
<ManuelOrderPrice>0.00</ManuelOrderPrice>
<ShippingPrice>0.00</ShippingPrice>
<ShippingVatPct>19.00</ShippingVatPct>
<Subscription>
<Interval>Monthly without end</Interval>
</Subscription>
</PurchaseItem>
</Purchase>
</OrderNotification>
</e5Notification>
I want to convert this into an simple array as flat as possible.
I've tried to seach S-O for possible, nearly matching solutions to solve it on my own but maybe i've got an bl开发者_Go百科ockade in my head immo.
Maybe someone could help me out.
This seems an underwhelmingly complex problem, so I probably don't understand the question. The answer is to parse the xml, storing it in array[]
, thus (using a pseudo-C notation):
array[0]: struct OrderNotification, consisting of one or more
struct Subscription, where each subscription has a collection of
struct Purchase, and each Purchase has some
struct PurchaseItem;
array[1]: same as array[0]
array[2]: same as array[0]
usw.
Does this begin to address your question? Or am I way wrong?
精彩评论