2 Stimmen

Wie kann ich alle Tags und ihre Kinder aus einer XML-Datei ziehen?

Die XML-Daten sehen wie folgt aus:

    <?xml version="1.0" encoding="UTF-8"?>
    <xmldata>
      <Orders>
        <OrderID>2119</OrderID>
        <AddressValidated>Y</AddressValidated>
        <Affiliate_Commissionable_Value>2.0000</Affiliate_Commissionable_Value>
        <AuthHash>d995fd9424fb99e80f58841a0ff2340f</AuthHash>
        <AVS />
        <BillingAddress1>122 27th West</BillingAddress1>
        <BillingAddress2>Floor 11</BillingAddress2>
        <BillingCity>New York</BillingCity>
        <BillingCompanyName />
        <BillingCountry>United States</BillingCountry>
        <BillingFaxNumber />
        <BillingFirstName>Dan</BillingFirstName>
        <BillingLastName>Test</BillingLastName>
        <BillingPhoneNumber>646456777</BillingPhoneNumber>
        <BillingPostalCode>10001</BillingPostalCode>
        <BillingState>NY</BillingState>
        <CardHoldersName />
        <CC_Last4 />
        <CreditCardAuthorizationDate>3/30/2012 11:52:00 AM</CreditCardAuthorizationDate>
        <CreditCardAuthorizationNumber>MANUAL</CreditCardAuthorizationNumber>
        <CreditCardTransactionID />
        <Customer_IPAddress>184.56.49.45</Customer_IPAddress>
        <CustomerID>19</CustomerID>
        <CVV2_Response />
        <GiftWrapNote />
        <IsAGift>N</IsAGift>
        <LastModBy>7</LastModBy>
        <LastModified>3/30/2012 1:39:00 PM</LastModified>
        <Locked>Y</Locked>
        <Order_Comments>Test sale - Don't process
    Ignore statuses on this order</Order_Comments>
        <Order_Entry_System>PHONE</Order_Entry_System>
        <OrderDate>3/30/2012 11:01:00 AM</OrderDate>
        <OrderNotes />
        <OrderStatus>Ready to Ship</OrderStatus>
        <PaymentAmount>8.1600</PaymentAmount>
        <PaymentMethodID>17</PaymentMethodID>
        <PONum />
        <Processed_AutoEvents>Y</Processed_AutoEvents>
        <SalesRep_CustomerID>7</SalesRep_CustomerID>
        <SalesTax1>0.1700</SalesTax1>
        <SalesTax2>0.0000</SalesTax2>
        <SalesTax3>0.0000</SalesTax3>
        <SalesTaxRate>0</SalesTaxRate>
        <SalesTaxRate1>0.08375</SalesTaxRate1>
        <SalesTaxRate2>0</SalesTaxRate2>
        <SalesTaxRate3>0</SalesTaxRate3>
        <ShipAddress1>123 27th West</ShipAddress1>
        <ShipAddress2>Floor 1</ShipAddress2>
        <ShipCity>New York</ShipCity>
        <ShipCompanyName />
        <ShipCountry>United States</ShipCountry>
        <ShipFaxNumber />
        <ShipFirstName>Dan</ShipFirstName>
        <ShipLastName>Test</ShipLastName>
        <ShipPhoneNumber>646782342</ShipPhoneNumber>
        <Shipping_Locked>Y</Shipping_Locked>
        <ShippingMethodID>1</ShippingMethodID>
        <ShipPostalCode>10001</ShipPostalCode>
        <ShipResidential>Y</ShipResidential>
        <ShipState>NY</ShipState>
        <Stock_Priority>3</Stock_Priority>
        <Tax1_IgnoreNoTaxRules />
        <Tax1_Title>Tax (8.375%)</Tax1_Title>
        <Tax2_IgnoreNoTaxRules />
        <Tax2_IncludePrevious>0</Tax2_IncludePrevious>
        <Tax2_Title />
        <Tax3_IgnoreNoTaxRules />
        <Tax3_IncludePrevious>0</Tax3_IncludePrevious>
        <Tax3_Title />
        <Total_Payment_Authorized>0.0000</Total_Payment_Authorized>
        <Total_Payment_Received>7.0700</Total_Payment_Received>
        <TotalShippingCost>5.9900</TotalShippingCost>
        <VendorID>0</VendorID>
        <OrderDetails>
          <OrderDetailID>3374</OrderDetailID>
          <AutoDropShip>Y</AutoDropShip>
          <FreeShippingItem>Y</FreeShippingItem>
          <GiftTrakNumber>0</GiftTrakNumber>
          <GiftWrap />
          <GiftWrapCost>0.0000</GiftWrapCost>
          <GiftWrapNote />
          <IsKitID />
          <KitID />
          <Locked>Y</Locked>
          <OnOrder_Qty>0</OnOrder_Qty>
          <OptionIDs />
          <Options />
          <OrderID>2119</OrderID>
          <ProductCode>test-product</ProductCode>
          <ProductID>39200</ProductID>
          <ProductName>Test Product 1</ProductName>
          <ProductNote />
          <ProductPrice>1.0000</ProductPrice>
          <ProductWeight>1</ProductWeight>
          <QtyOnBackOrder>0</QtyOnBackOrder>
          <QtyOnHold>1</QtyOnHold>
          <QtyShipped>0</QtyShipped>
          <Quantity>1</Quantity>
          <TaxableProduct>Y</TaxableProduct>
          <TotalPrice>1.0000</TotalPrice>
          <Vendor_Price>0.0000</Vendor_Price>
          <Warehouses />
        </OrderDetails>
        <OrderDetails>
          <OrderDetailID>3386</OrderDetailID>
          <AutoDropShip />
          <FreeShippingItem>Y</FreeShippingItem>
          <GiftTrakNumber>0</GiftTrakNumber>
          <GiftWrap />
          <GiftWrapCost>0.0000</GiftWrapCost>
          <GiftWrapNote />
          <Locked>Y</Locked>
          <OnOrder_Qty>0</OnOrder_Qty>
          <Options />
          <OrderID>2119</OrderID>
          <ProductCode>test-product</ProductCode>
          <ProductID>39200</ProductID>
          <ProductName>Test Product 2</ProductName>
          <ProductNote />
          <ProductPrice>1.0000</ProductPrice>
          <ProductWeight>1</ProductWeight>
          <QtyOnBackOrder>0</QtyOnBackOrder>
          <QtyOnHold>1</QtyOnHold>
          <QtyShipped>0</QtyShipped>
          <Quantity>1</Quantity>
          <TaxableProduct>Y</TaxableProduct>
          <TotalPrice>1.0000</TotalPrice>
        </OrderDetails>
      </Orders>
      <Orders>
        <OrderID>2141</OrderID>
        <AddressValidated>Y</AddressValidated>
        <Affiliate_Commissionable_Value>1.0000</Affiliate_Commissionable_Value>
        <AuthHash>14cca8be8db44ca9943f0a6cbf592c83</AuthHash>
        <AVS />
        <BillingAddress1>122 27th West2</BillingAddress1>
        <BillingAddress2 />
        <BillingCity>New York2</BillingCity>
        <BillingCompanyName />
        <BillingCountry>United States</BillingCountry>
        <BillingFaxNumber />
        <BillingFirstName>Dan2</BillingFirstName>
        <BillingLastName>Test2</BillingLastName>
        <BillingPhoneNumber>646346322</BillingPhoneNumber>
        <BillingPostalCode>10002</BillingPostalCode>
        <BillingState>NY</BillingState>
        <CardHoldersName />
        <CC_Last4 />
        <CreditCardAuthorizationDate>3/30/2012 3:33:00 PM</CreditCardAuthorizationDate>
        <CreditCardAuthorizationNumber>MANUAL</CreditCardAuthorizationNumber>
        <CreditCardTransactionID />
        <Customer_IPAddress>56.75.23.34</Customer_IPAddress>
        <CustomerID>19</CustomerID>
        <CVV2_Response />
        <GiftWrapNote />
        <IsAGift>N</IsAGift>
        <LastModBy>7</LastModBy>
        <LastModified>3/30/2012 3:33:00 PM</LastModified>
        <Locked>Y</Locked>
        <Order_Comments>Test sale #2, don't process, ignore status.</Order_Comments>
        <Order_Entry_System>PHONE</Order_Entry_System>
        <OrderDate>3/30/2012 3:32:00 PM</OrderDate>
        <OrderNotes />
        <OrderStatus>Ready to Ship</OrderStatus>
        <PaymentAmount>7.0700</PaymentAmount>
        <PaymentMethodID>17</PaymentMethodID>
        <PONum />
        <Processed_AutoEvents>Y</Processed_AutoEvents>
        <SalesRep_CustomerID>7</SalesRep_CustomerID>
        <SalesTax1>0.0800</SalesTax1>
        <SalesTax2>0.0000</SalesTax2>
        <SalesTax3>0.0000</SalesTax3>
        <SalesTaxRate>0</SalesTaxRate>
        <SalesTaxRate1>0.08375</SalesTaxRate1>
        <SalesTaxRate2>0</SalesTaxRate2>
        <SalesTaxRate3>0</SalesTaxRate3>
        <ShipAddress1>123 27th West2</ShipAddress1>
        <ShipAddress2 />
        <ShipCity>New York2</ShipCity>
        <ShipCompanyName />
        <ShipCountry>United States</ShipCountry>
        <ShipFaxNumber />
        <ShipFirstName>Dan2</ShipFirstName>
        <ShipLastName>Test2</ShipLastName>
        <ShipPhoneNumber>6461234789</ShipPhoneNumber>
        <Shipping_Locked>Y</Shipping_Locked>
        <ShippingMethodID>1</ShippingMethodID>
        <ShipPostalCode>10002</ShipPostalCode>
        <ShipResidential>Y</ShipResidential>
        <ShipState>NY</ShipState>
        <Stock_Priority>3</Stock_Priority>
        <Tax1_IgnoreNoTaxRules />
        <Tax1_Title>Tax (8.375%)</Tax1_Title>
        <Tax2_IgnoreNoTaxRules />
        <Tax2_IncludePrevious>0</Tax2_IncludePrevious>
        <Tax2_Title />
        <Tax3_IgnoreNoTaxRules />
        <Tax3_IncludePrevious>0</Tax3_IncludePrevious>
        <Tax3_Title />
        <Total_Payment_Authorized>0.0000</Total_Payment_Authorized>
        <Total_Payment_Received>7.0700</Total_Payment_Received>
        <TotalShippingCost>5.9900</TotalShippingCost>
        <VendorID>0</VendorID>
<OrderDetails>
      <OrderDetailID>3404</OrderDetailID>
      <AutoDropShip>Y</AutoDropShip>
      <FreeShippingItem>Y</FreeShippingItem>
      <GiftTrakNumber>0</GiftTrakNumber>
      <GiftWrap />
      <GiftWrapCost>0.0000</GiftWrapCost>
      <GiftWrapNote />
      <IsKitID />
      <KitID />
      <Locked>Y</Locked>
      <OnOrder_Qty>0</OnOrder_Qty>
      <OptionIDs />
      <Options />
      <OrderID>2141</OrderID>
      <ProductCode>test-product</ProductCode>
      <ProductID>39200</ProductID>
      <ProductName>Test Product</ProductName>
      <ProductNote />
      <ProductPrice>1.0000</ProductPrice>
      <ProductWeight>1</ProductWeight>
      <QtyOnBackOrder>0</QtyOnBackOrder>
      <QtyOnHold>1</QtyOnHold>
      <QtyShipped>0</QtyShipped>
      <Quantity>1</Quantity>
      <TaxableProduct>Y</TaxableProduct>
      <TotalPrice>1.0000</TotalPrice>
      <Vendor_Price>0.0000</Vendor_Price>
      <Warehouses />
    </OrderDetails>
  </Orders>
</xmldata>

Ich brauche nur die Kinder von allen <OrderDetails>

Beim Testen habe ich versucht, einfach ein Echo aller Daten zu erstellen und dann Variablen zu setzen, sobald ich das hatte.

function processxmldetails() {
$filexml='vl_rts.xml';
if (file_exists($filexml)) {
$xml = simplexml_load_file($filexml);
foreach ($xml->Orders->OrderDetails->children() as $Orders) {
echo $Orders . '<br>';
}
//end foreach
}
}

Was nur ein Echo hierauf ist:

3374
Y
Y
0

0.0000

Y
0

2119
test-product
39200
Test Product 1

1.0000
1
0
1
0
1
Y
1.0000
0.0000

Ich brauche jeden <OrderDetails> wirklich in einer eigenen Variablen, so dass ich prüfen kann, welche <OrderDetailID> und fügen Sie sie entsprechend in eine andere Datenbank ein.

Wie kann ich auf diese <OrderDetail> Tags nacheinander und überprüfen Sie dann, was deren <OrderDetailID> ist es, eine Aufgabe zu erfüllen und dann zur nächsten überzugehen. <OrderDetail> ?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X