<gesmes:Envelope>
아마도 "모든 진실"아니다. gesmes:
과 같은 접두어는 URI와 연관되어야합니다. 귀하의 경우에는 아마
<gesmes:Envelope
xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01"
xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"
>
있어 그리고 지금 당신은 namespaces 다루는 .... PHP의 simplexml module이
가 있습니다. 약간 shortcomings when namespaces are involved이 있습니다. 어쨌든 ... 여기있다 :
$s = new SimpleXMLelement(getData());
foreach($s->Cube as $cubeContainer) {
foreach($cubeContainer as $cubeEntry) {
echo 'time: ', $cubeEntry['time'], "\n";
foreach($cubeEntry->Cube as $cubeElement) {
echo ' ', $cubeElement['currency'], '=', $cubeElement['rate'], "\n";
}
}
}
// now that was easy ...now the fun of having namespaces/prefixes
foreach($s->children("http://www.gesmes.org/xml/2002-08-01")->subject as $subject) {
echo 'subject: ', $subject, "\n";
}
foreach($s->children("http://www.gesmes.org/xml/2002-08-01")->Sender as $sender) {
foreach($sender->children("http://www.gesmes.org/xml/2002-08-01")->name as $name) {
echo 'sender/name: ', $name, "\n";
}
}
function getData() {
return '<gesmes:Envelope xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01" xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref">
<gesmes:subject>Reference rates</gesmes:subject>
<gesmes:Sender>
<gesmes:name>European Central Bank</gesmes:name>
</gesmes:Sender>
<Cube>
<Cube time="2010-03-26">
<Cube currency="USD" rate="1.3353"/>
<Cube currency="JPY" rate="124.00"/>
<Cube currency="BGN" rate="1.9558"/>
<Cube currency="CZK" rate="25.418"/>
</Cube>
</Cube>
</gesmes:Envelope>';
}
인쇄
time: 2010-03-26
USD=1.3353
JPY=124.00
BGN=1.9558
CZK=25.418
subject: Reference rates
sender/name: European Central Bank
특정 요소를 찾기 위해 XPath를 사용하려면
/노드 (중
SimpleXMLElement::xpath 또는
DOMXPath 당신이
pointed out by cletus로
DOMDocument 사용할 것이다) 네임 스페이스를 먼저 등록해야합니다.
$s = new SimpleXMLelement(getData());
$s->registerXPathNamespace('gesmes', 'http://www.gesmes.org/xml/2002-08-01');
foreach($s->xpath('//gesmes:name[position()=1]') as $n){
echo $n, "\n";
}
프린트 European Central Bank
.
그리고 XML 문서를 구문 분석하는 다른 함수/메소드가 있습니다. 예 : XMLReader 또는 원래 퀘스트에 가장 근접한 것일 수 있습니다. "해시 맵 [...]에 저장된 값을 가져 오는 방법은 무엇입니까?") xml_parse_into_struct()
"해시 맵 또는 이와 유사한 구조에 저장 됨"- 이걸 조금 더 자세히 설명해 줄 수 있니? – VolkerK
키 -> 값 키가 통화 이름 인 경우 환율은 환율 – csU