Fügen Sie XML-Daten mit PHP in MySQL ein
Teil der XML-Datei, die das Problem darstellt (in der XML-Datei sind Hunderte von Kunden registriert)
<?xml version="1.0" encoding="utf-8"?>
<test>
<customer>
<name>customer 1</name>
<address>address 1</address>
<city>city 1</city>
<state>state 1</state>
<zip>zip 1</zip>
<phone>phone 1</phone>
<buyerinfo>
<shippingaddress>
<name>ship to</name>
<address>Ship address1</address>
</shippingaddress>
</buyerinfo>
<shippingDetail>
<saletax>
<saletaxamount>2</saletaxamount>
</saletax>
</shippingDetail>
</customer>...
Unten ist mein Code
//Xml string is parsed and creates a DOM Document object
$responseDoc = new DomDocument();
$responseDoc->load('test.xml');
foreach ($responseDoc->getElementsByTagName('customer') as $customer){
$sSQL = sprintf(
"INSERT INTO customer (name, address, city, state, zip, phone, shipto, shipadderss, tax)
VALUES ('%s','%s', '%s', '%s','%s','%s', '%s','%s','%s')",
mysql_real_escape_string($customer->getElementsByTagName('name')->item(0)->nodeValue),
mysql_real_escape_string($customer->getElementsByTagName('address')->item(0)->nodeValue),
mysql_real_escape_string($customer->getElementsByTagName('city')->item(0)->nodeValue),
mysql_real_escape_string($customer->getElementsByTagName('state')->item(0)->nodeValue),
mysql_real_escape_string($customer->getElementsByTagName('zip')->item(0)->nodeValue),
mysql_real_escape_string($customer->getElementsByTagName('phone')->item(0)->nodeValue)
?
?
?
);
$rResult = mysql_query($sSQL);
if(mysql_errno() > 0)
{
printf(
'<h4 style="color: red;">Query Error:</h4>
<p>(%s) - %s</p>
<p>Query: %s</p>
<hr />',
mysql_errno(),
mysql_error(),
$sSQL
);
}
}
Fragen:
Wie erhalte ich Zugriff auf den Knotenwert customer.buyerinfo.shippingaddress.name mithilfe von mysql_real_escape_string in meiner insert-Anweisung? angezeigt mit "???"
Die Tatsache, dass ich zwei Knoten mit dem gleichen Knotennamen habe"Name"ist einerKundenname und ein anderer istcustomer.buyerinfo.shippingaddress.name zu benennen macht es problematisch zu benutzengetElementsByTagName "name" -Tag, um den Wert zu erhalten.
das gleiche wie das erste, aber wie komme ich dahin?Umsatzsteuer Knotendatenwert?
Bitte helfen Sie freundlich. Vielen Dank!