Ich benutze DomDocument für den Zugriff auf XML-Daten, aber ich kann nicht zugreifen.Zugriff auf XML nach foreach mit DomDocument
$xmlstring =<<<XML
<CcyTbl>
<CcyNtry>
<CtryNm>AFGHANISTAN</CtryNm>
<CcyNm>Afghani</CcyNm>
<Ccy>AFN</Ccy>
<CcyNbr>971</CcyNbr>
<CcyMnrUnts>2</CcyMnrUnts>
</CcyNtry>
<CcyNtry>
<CtryNm>ÅLAND ISLANDS</CtryNm>
<CcyNm>Euro</CcyNm>
<Ccy>EUR</Ccy>
<CcyNbr>978</CcyNbr>
<CcyMnrUnts>2</CcyMnrUnts>
</CcyNtry>
<CcyNtry>
<CtryNm>ALBANIA</CtryNm>
<CcyNm>Lek</CcyNm>
<Ccy>ALL</Ccy>
<CcyNbr>008</CcyNbr>
<CcyMnrUnts>2</CcyMnrUnts>
</CcyNtry>
<CcyNtry>
<CtryNm>ALGERIA</CtryNm>
<CcyNm>Algerian Dinar</CcyNm>
<Ccy>DZD</Ccy>
<CcyNbr>012</CcyNbr>
<CcyMnrUnts>2</CcyMnrUnts>
</CcyNtry>
<CcyNtry>
<CtryNm>AMERICAN SAMOA</CtryNm>
<CcyNm>US Dollar</CcyNm>
<Ccy>USD</Ccy>
<CcyNbr>840</CcyNbr>
<CcyMnrUnts>2</CcyMnrUnts>
</CcyNtry>
</CcyTbl>
XML;
$doc = new DOMDocument('1.0', 'UTF-8');
$doc->loadXML(utf8_encode($xmlstring));
$countries = $doc->getElementsByTagName('CcyNtry');
foreach($countries as $country){
print_r($country->nodeValue);die();
}
Dies zeigt
AFGHANISTAN Afghani AFN 971 2
Aber ich möchte auf einzelne Elemente zugreifen wie CtryNm, CcyNm, Ccy
I
$doc = new DOMDocument('1.0', 'UTF-8');
$doc->loadXML(utf8_encode($xmlstring));
$countries = $doc->getElementsByTagName('CcyNtry');
foreach($countries as $country){
echo $country->CtryNm;die();
}
undefinierte Eigenschaft zuzugreifen versucht: DOMElement :: $ CtryNm
Können Sie den vollständigen Code angeben? Das erste Beispiel enthält einen Parse-Fehler. –
Sie müssen das XML verschieben; in die erste Zeile –
Ja, Sie müssen dies versuchen $ countries = $ doc-> getElementsByTagName ('CcyTbl'); – Shefali