2010-12-30 3 views
1

이봐, 기본적으로 엄청난 XML 문서가 있고, n 개의 속성 값과 많은 재즈가있다.전체 XML 문서를 자동으로 PHP 변수로 구문 분석

내가 XML/PHP에 끔찍한만큼 매우 게으르 길 원한다. Google이 이번 경우에 나를 실패한 것으로 보인다.

XML 문서에서 모든 요소를 ​​가져 와서 PHP 변수로 만들 수 있습니까?

그래서 만약 내 XML의 문서는 그래서 재귀 상관없이 PHP 변수로 모두 변환하지 않는 문서를 확인 할

<wrap> 
<sub></sub> 
    <subsub></subsub> 
<sub></sub> 
    <subsub></subsub> 
<sub2></sub2> 
<sub3 value=''></sub3> 
<sub4 value=''></sub4> 
</wrap> 

... 어쩌면 어땠는지 태그/노드의 이름입니다. 그래서 예를 들어 결국 어쩌면 그렇게 될 것입니다. $ 포장; $ 1; $ sub [2]; $ sub2; $ sub3; $ sub4; $ sub3 [ '값']; $ sub4 [ '값'];

그래서 나는 8 명의 아이들을 깊이 파헤 치기 위해 영리해야만 할 것입니까?

이 가능하거나 $ sub1 = $ xml-> wrap-> sub 1과 같이 입력해야합니다. 그 이유는 ... 1k 줄의 코드가 넘쳐나고 싶지 않기 때문입니다. 그냥 원래처럼 복잡한 뭔가하게 될 겁니다으로

는 XML 피드 당신의 시간에 대한 HERE

덕분에 그냥 넣다 :

+0

처럼 $ XML 객체 내에서 요소를 참조 할 수있다 적지 dom->는 PHP 사이트의 SimpleXML을 워드 프로세서에 대한 commnets의 배열 샘플 기능 : HTTP : //ca2.php.net/simplexml –

+0

전체 xml 파일을 배열 변수에 저장할 수 있습니다. 이 배열에는 하위 배열과 값이 있습니다. 구문 분석 후에 배열에서 원하는 모든 값을 직접 참조 할 수 있습니다. – tHeSiD

+0

@tHeSiD simplexml로 어떻게 할 것입니까? – Owen

답변

1
$xml = simplexml_load_string($response); 
// $response is your xml file/output string 

당신이 다음이

$xml->children('yourschema')->children('yoururn')->Tag1->Tag2 
0

귀하의 제안 방식은 정말 이해가되지 않습니다 XML은 구문 분석하는 데 많은 노력이 필요합니다. 따라서 DOM parser 또는 SimpleXML을 사용하는 것이 정상적인 진행 방법 일 수 있습니다.

그렇다면 xpath (DOM 또는 SimpleXML)와 같은 것이 특정 정보를 추출하려고 시도하는 중이고 XML의 대부분을 염려하지 않는다고 생각됩니다.

+0

현재 im은 simplexml ive를 사용하여 실제로 xml stuff를 사용하는 방법을 알지 못합니다. 하지만 XML 시트에서 98 %의 데이터가 필요합니다. 당신은 내가 simplexml을 사용하는 것이 좋습니다, 나는 아직도 내가 원하는 것을하기 위해 그것을 효과적으로 사용하는 방법을 몰랐다. phpnet을 통해 하루 종일 읽었으며 아무 것도 찾을 수 없다/내가 원하는 것을 해결하는 것처럼 보임 / – Owen

0

일단 XML 데이터를 simpleXML 요소에로드하면 쉽게 액세스 할 수 있습니다. 예 :

$xml = new SimpleXMLElement($input_xml_string); 
foreach($xml->sub as $value) { 
    echo $value->subsub; 
} 

예약어이므로주의해야합니다. 당신은 브래킷 $ XML의 그것을 싸는 할 수 있습니다 -> {하위}

http://www.php.net/manual/en/simplexml.examples-basic.php을 읽을 당신이 제거 아이처럼 더 복잡한 물건을 할 수있는 DOM 객체를 사용해야합니다.