Jump to content

How do I add children to XML using DOMDocument and XPath?


PnzrDrgoon

Recommended Posts

$domdoc=new DOMDocument();
$domdoc->formatOutput=TRUE;

$empty_cart_xml=
			'<Order>
				<Cart>
					<Items>
						<Item>1</Item>
						<Item>2</Item>
						<Item>3</Item>
					</Items>
				</Cart>
			</Order>';

$domdoc->loadXML($empty_cart_xml);
print $domdoc->saveXML()."<hr/>"; //works up to this point

$xpath=new DOMXPath($domdoc);

$items=$xpath->query('Order/Cart/Items');
foreach($itemses AS $items)
{
	$items->appendChild($domdoc->createElement('Item','4'));
}

print $domdoc->saveXML();

 

All I want to do is to add a new Item to Items.  What am I doing wrong?

Yay!  Answer below.

 

$domdoc=new DOMDocument();
$domdoc->formatOutput=TRUE;
//print $domdoc->saveXML();

$empty_cart_xml=
			'<Order xmlns="http://payments.amazon.com/checkout/2009-05-15/">
				<Cart>
					<Items>
						<Item>1</Item>
						<Item>2</Item>
						<Item>3</Item>
					</Items>
				</Cart>
				<OrderCalculationCallbacks>
					<CalculateTaxRates>true</CalculateTaxRates>
					<CalculatePromotions>true</CalculatePromotions>
					<CalculateShippingRates>true</CalculateShippingRates>
					<OrderCallbackEndpoint>
						https://my.endpoint.com/receive.php
					</OrderCallbackEndpoint>
					<ProcessOrderOnCallbackFailure>true</ProcessOrderOnCallbackFailure>
				</OrderCalculationCallbacks>
			</Order>';
//print $empty_cart_xml;
$domdoc->loadXML($empty_cart_xml);
print $domdoc->saveXML()."<hr/>";

$item=$domdoc->createElement('Item','4');
$domdoc->getElementsByTagName('Items')->item(0)->appendChild($item);


print $domdoc->saveXML();

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.