PHP bir XML veri alın. NET DataSet

1 Cevap php

. Ben bir NET web hizmetinden Aşağıdaki XML vardır:

<?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>

Ben sadece GROUP_ID düğüm değerini erişmek gerekir, ancak bunu yapmak için en kolay yolu bilmek istiyorum. Şimdiye kadar DomDocument kullanıyorum ve DomXPath bu düğüm sorgulamak için, ama ben eksik bir iyi bir yolu vardır umuyorum:

$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;
}

Teşekkürler!

1 Cevap

Bazı moda döngü ihtiyacı maalesef gereklidir. : Eğer SimpleXML kullanarak sanki siz basitçe gibi kod yazabilirsiniz

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