I'm trying to run some reporting for an event feed that I have. I'm using the web services that my event manager provides to create an XML file using PHP. That is working great. This is the XML that I am getting:
<?xml version="1.0" encoding="UTF-8"?>
<ArrayOfTransactionInformation>
<Transaction Transaction_Id="3126" IsSuccess="true" IsReviewed="true">
<Column Name="instance_id" Value="65104108-6355-49C2-ACA7-8D5A28C962BD" />
<Column Name="amount" Value="700.0000" />
<Column Name="purchasedate" Value="2014-09-22T17:00:13" />
<Column Name="authorizationcode" Value="Skipped billing - not applicable" />
<Column Name="custtransnum" Value="Skipped billing - not applicable" />
<Column Name="retrievalcode" Value="Skipped billing - not applicable" />
<Column Name="appealcode" Value="" />
<Column Name="transactionlastupdated" Value="2014-09-22T17:00:13" />
<Column Name="billingname" Value="John Test" />
<Column Name="creditcardtype" Value="N/A" />
<Column Name="lastfourdigits" Value="1111" />
<Column Name="achbankname" Value="" />
<Column Name="achbankstate" Value="" />
<Column Name="achaccountnumlast2" Value="" />
<Column Name="achroutingnumlast2" Value="" />
<Column Name="achchecknum" Value="" />
<Column Name="achaccounttype" Value="" />
<Column Name="billingemail" Value="john@test.com" />
<Column Name="billingphone" Value="" />
<Column Name="billingstreet1" Value="Skipped billing - not applicable" />
<Column Name="billingstreet2" Value="Skipped billing - not applicable" />
<Column Name="billingcity" Value="Skipped billing - not applicable" />
<Column Name="billingstate" Value="N/A" />
<Column Name="billingzip" Value="N/A" />
<Column Name="billingcountry" Value="Skipped billing - not applicable" />
<Column Name="paymenttype" Value="OT" />
<Column Name="paymentfrequency" Value="" />
<Column Name="totalscheduledamount" Value="" />
<Column Name="nextpaymentamount" Value="" />
<Column Name="nextpaymentdate" Value="" />
<Column Name="paymentsremaining" Value="" />
<Column Name="amounttodate" Value="" />
<Column Name="firstpaymentdate" Value="" />
<Column Name="initialtransactionid" Value="0" />
<Column Name="fromfacebook" Value="False" />
<Column Name="communityid" Value="2" />
<Column Name="agentid" Value="" />
<Column Name="agentname" Value="" />
<Column Name="merchantaccountname" Value="Cyber Source" />
<Column Name="control_id" Value="2055" />
<Column Name="control_type" Value="event" />
<Column Name="control_name" Value="Bowl Game Registration Template" />
<Column Name="constituent_id" Value="" />
<Column Name="imod_member_id" Value="280873" />
<TransactionItems>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10355">
<Column Name="sku" Value="bus_h2_early_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10356">
<Column Name="sku" Value="bus_h3_early_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10357">
<Column Name="sku" Value="bus_h4_early_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10358">
<Column Name="sku" Value="party_ind_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10359">
<Column Name="sku" Value="party_table_type_1_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10360">
<Column Name="sku" Value="tailgate_ind_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10349">
<Column Name="sku" Value="hotel_4_fn_king_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10350">
<Column Name="sku" Value="hotel_4_sn_king_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10351">
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10352">
<Column Name="total" Value="400.0000" />
<Column Name="quantity" Value="1" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10353">
<Column Name="total" Value="300.0000" />
<Column Name="quantity" Value="1" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10354">
<Column Name="sku" Value="bus_h1_early_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10343">
<Column Name="sku" Value="hotel_2_fn_king_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10344">
<Column Name="sku" Value="hotel_2_sn_king_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10345">
<Column Name="sku" Value="hotel_2_tn_king_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10346">
<Column Name="sku" Value="hotel_3_fn_king_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10347">
<Column Name="sku" Value="hotel_3_sn_king_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10348">
<Column Name="sku" Value="hotel_3_tn_king_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10340">
<Column Name="sku" Value="hotel_1_fn_king_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10341">
<Column Name="sku" Value="hotel_1_sn_king_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
<TransactionItem Imod_Member_Id="280873" Type="CommerceItem" Transaction_Item_Id="Item-10342">
<Column Name="sku" Value="hotel_1_tn_king_paid" />
<Column Name="total" Value="0.0000" />
<Column Name="quantity" Value="0" />
<Column Name="fairmarketvalue" Value="0.0000" />
</TransactionItem>
</TransactionItems>
<LinkedTransaction>
<TransactionId>0</TransactionId>
<Amount>0</Amount>
<ControlId>0</ControlId>
<ControlType />
<ControlName />
<PaymentType />
<TotalScheduledAmount>0</TotalScheduledAmount>
</LinkedTransaction>
</Transaction>
</ArrayOfTransactionInformation>
It seems that they output every field to XML with the same tag name. I need to be able to pull each individual element and I need to be able to do that for the whole file, for instance, when there are several entries I would need to be able to pull and display all the names of entries, which would be billingname
.
I am able to pull elements from this, but I just cannot figure out how to pull elements based on their attribute values. I have been trying to use the xpath method and several other variations.
This is the PHP that I have that will pull all elements within the <Transaction>
element successfully:
$xml=simplexml_load_file("reporting.xml");
echo $xml->getName() . "<br>";
echo "<table width=700>";
for ($i = 0; ; $i++){
foreach($xml->Transaction->Column[$i]->attributes() as $a => $b) {
echo "<tr><td>";
echo $a,'="',$b,"\"\n";
echo "</td></tr>";
}
}
echo "</table>";
Any idea on how I could use the PHP to display the data using the values of the attributes? Or to better explain, I need to do a foreach (i think) to find all instances of billingname
and then echo the value of that, for instance "John Test".