Получить данные из XML .NET DataSet в PHP

У меня есть следующий XML из веб-службы .NET:

<?xml version="1.0" encoding="utf-8"?> <DataSet> <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="NewDataSet" msdata:IsDataSet="true"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element name="Table1"> <xs:complexType> <xs:sequence> <xs:element name="GROUP_ID" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> <NewDataSet xmlns=""> <Table1 diffgr:id="Table11" msdata:rowOrder="0" diffgr:hasChanges="inserted"> <GROUP_ID>NUM</GROUP_ID> </Table1> </NewDataSet> </diffgr:diffgram> </DataSet> 

Мне нужно получить доступ только к значению узла GROUP_ID, но вам нужно знать самый простой способ сделать это. До сих пор я использовал DomDocument и DomXPath для запроса для этого узла, но я надеюсь, что есть лучший способ, который мне не хватает:

 $xml = new DomDocument(); $xml->load('file.xml'); $xp = new DomXPath($xml); $result = $xp->query('//GROUP_ID'); $id = null; foreach($result as $node){ $id = $node->nodeValue; break; } 

Благодаря!

К сожалению, необходимость петли каким-то образом. Если вы используете simplexml, вы можете написать свой код так же, как:

 $xml = simplexml_load_file('file.xml'); $result = $xml->xpath('//GROUP_ID'); while(list(,$node) = each($result)) { $id = (string) $node; break; // optional }