What's the equivalent of Microsoft.XMLDOM in PHP?

I’ve programmed a web site using Flash AS, ASP, XML, access as the database (www.kameraturk.com). I used Microsoft.XMLDOM for parsing XML data to handle the data from flash to access.

Now i’ll start a new project, i want to move the server-side technology to PHP. I’m new to PHP and i want to learn if php has a similar component to handle the incoming XML as Microsoft.XMLDOM.

The following code will clarify what i mean:


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1254"%>
<!--#include file="Connections/connection.asp" -->

<%
'@@@@@@@@@@@@@ Begining of the code i stuck with PHP

'################## Get the XML and parse. 
Dim verXML, parser, rootElement, uyeidNode, uyeid, adresidNode, adresid, faturaidNode, faturaid, siparistutarNode, siparistutar, odemetipNode, odemetip, urunlerNode, urunler, adetNode, adet, uruntutarNode, uruntutar

set parser = Server.CreateObject("Microsoft.XMLDOM")
parser.loadXML(Request.Form)

set rootElement = parser.documentElement

set uyeidNode = rootElement.selectSingleNode("uyeid")
uyeid = uyeidNode.text
set adresidNode = rootElement.selectsingleNode("adresid")
adresid = adresidNode.text
set faturaidNode = rootelement.selectsingleNode("faturaid")
faturaid = faturaidNode.text
set siparisTutarNode = rootelement.selectsingleNode("siparistutar")
siparistutar = siparisTutarNode.text
set odemetipNode = rootElement.selectsingleNode("odemetip")
odemetip = odemetipNode.text
set urunlernode = rootelement.selectsingleNode("urunler")
urunStr = urunlernode.text
set adetNode = rootelement.selectsingleNode("adetler")
adetStr = adetNode.text
set uruntutarNode = rootelement.selectsingleNode("tutarlar")
tutarStr = uruntutarnode.text 
'@@@@@@@@@@@@@ End of the code that i stuck with PHP. 


'################## Get the next order id
dim rsFatura
dim rsFatura_numrows

set rsFatura = Server.CreateObject("ADODB.Recordset")
rsFatura.ActiveConnection = MM_connKamera_STRING
rsFatura.Source = "SELECT * FROM nextorder order BY ID DESC"
rsFatura.CursorType = 0
rsFatura.CursorLocation = 2
rsFatura.LockType = 1
rsFatura.Open()
rsFatura_numRows = 0

sipid = rsFatura("NextID")

'############ Insert the order
set sekle = Server.CreateObject("ADODB.Command")
sekle.ActiveConnection = MM_connKamera_STRING
sekle.CommandText = "INSERT INTO nextOrder (nextID)  VALUES ('" & sipid+1 & "')"
sekle.CommandType = 1
sekle.CommandTimeout = 0
sekle.Prepared = true
sekle.Execute()

' ##### insert new order to orders table
set sekle = Server.CreateObject("ADODB.Command")
sekle.ActiveConnection = MM_connKamera_STRING
sekle.CommandText = "INSERT INTO siparis (siparisID, userID, teslimatID, faturaID, siparistutar, odemetip)  VALUES ('" & sipid & "', '" & uyeid & "', '" & adresid & "', '" & faturaid & "', '" & siparistutar & "', '" & odemetip & "')"
sekle.CommandType = 1
sekle.CommandTimeout = 0
sekle.Prepared = true
sekle.Execute()



urunArray = Split(urunStr," ")
adetArray = Split(adetStr," ")
tutarArray = Split(tutarStr, " ")


for loopctr = 0 to ubound(urunArray)



' ###### insert the ordered items to orderdetails table
set ekle = Server.CreateObject("ADODB.Command")
ekle.ActiveConnection = MM_connKamera_STRING
ekle.CommandText = "INSERT INTO siparisdetay (siparisID, urunID, urunAdet, urunTutar)  VALUES ('"& sipid & "', '" & urunArray(loopctr) & "', '" & adetArray(loopctr) & "', '" & tutarArray(loopctr) & "')"
ekle.CommandType = 1
ekle.CommandTimeout = 0
ekle.Prepared = true
ekle.Execute()
next


'##### Return order completed response to flash
verXML = "<islem id=""" & sipid & """>tamam " & odemetip & "</islem>"
Response.Write(verXML)

rsFatura.Close()
set rsFatura = Nothing


set parser = nothing
set rootelement = nothing
set uyeidNode = nothing
set adresidNode =nothing
set faturaidNode = nothing
set siparisTutarNode = nothing
set odemetipNode = nothing
set urunlernode =nothing
set adetNode = nothing
set uruntutarNode = nothing
%>

I found some tuts for parsing the static xml documents with PHP. They don’t help me because I need to parse the XML generated by flash on the fly.
Something like (“parser.loadXML(Request.Form)”).

Any helps appreciated.
TIA