복붙노트

PHP에서 XML 파일의 속성 값을 가져 오는 방법은 무엇입니까?

PHP

PHP에서 XML 파일의 속성 값을 가져 오는 방법은 무엇입니까?

죄송합니다. 쉬운 질문 인 것 같지만, 머리를 뽑기 시작했습니다 ...

나는이 XML 파일을 가지고있다.

<VAR VarNum="90">
  <option>1</option>
</VAR>

나는 VarNum을 얻으려고하고있다.

지금까지 나는 다른 정보를 얻기 위해 follow 코드를 사용하여 성공했다.

$xml=simplexml_load_file($file);
$option=$xml->option;

난 그냥 VarNum (내가 생각하는 속성 값을 얻을 수 없다?)

감사!

해결법

  1. ==============================

    1.SimpleXMLElement :: attributes ()를 사용하여 이것을 얻을 수 있어야합니다.

    SimpleXMLElement :: attributes ()를 사용하여 이것을 얻을 수 있어야합니다.

    이 시도:

    $xml=simplexml_load_file($file);
    foreach($xml->Var[0]->attributes() as $a => $b) {
        echo $a,'="',$b,"\"\n";
    }
    

    그러면 첫 번째 foo 요소에 대한 모든 name / value 특성이 표시됩니다. 연관 배열이기 때문에 이렇게 할 수 있습니다.

    $attr = $xml->Var[0]->attributes();
    echo $attr['VarNum'];
    
  2. ==============================

    2.$ xml [ 'VarNum']을 사용하는 것은 어떻습니까?

    $ xml [ 'VarNum']을 사용하는 것은 어떻습니까?

    이렇게 :

    $str = <<<XML
    <VAR VarNum="90">
      <option>1</option>
    </VAR>
    XML;
    
    $xml=simplexml_load_string($str);
    $option=$xml->option;
    
    var_dump((string)$xml['VarNum']);
    

    (파일을 만드는 대신 XML을 문자열에 붙여 넣었 기 때문에 simplexml_load_string을 사용 했으므로 simplexml_load_file로 처리하는 것이 좋습니다.)

    윌 당신을 얻을 것이다

    string '90' (length=2)
    

    simpleXML을 사용하면 배열 구문으로 속성에 액세스 할 수 있습니다. 그리고 SimpleXMLElement가 아닌 값을 얻기 위해 문자열로 변환해야합니다.

    예를 들어 매뉴얼의 기본 사용 예 # 5를 참조하십시오.

  3. ==============================

    3.

    [0] => Array
                    (
                        [@attributes] => Array
                            (
                                [uri] => https://abcd.com:1234/abc/cst/2/
                            [id] => 2
                        )
    
                    [name] => Array
                        (
                            [first] => abcd
                            [last] => efg
                        )
    
                    [company] => abc SOLUTION
                    [email] => abc@xyz.com
                    [homepage] => WWW.abcxyz.COM
                    [phone_numbers] => Array
                        (
                            [phone_number] => Array
                                (
                                    [0] => Array
                                        (
                                            [main] => true
                                            [type] => work
                                            [list_order] => 1
                                            [number] => +919876543210
                                        )
    
                                    [1] => Array
                                        (
                                            [main] => false
                                            [type] => mobile
                                            [list_order] => 2
                                            [number] => +919876543210
                                        )
    
                                )
    
                        )
    
                    [photo] => Array
                        (
                            [@attributes] => Array
                                (
                                    [uri] => https://abcd.com:1234/abc/cst/2/cust_photo/
                                )
    
                        )
    
                )
    

    나는 아래의 코드를 적용했다.

    $xml = simplexml_load_string($response);
    $json = json_encode($xml);
    $array = json_decode($json,TRUE);
    print_r($array);
    

    하지만 그것은 PHP에서 단일 배열에있는 모든 데이터를 원하는 전체 사용하지 않습니다

  4. from https://stackoverflow.com/questions/1256796/how-to-get-the-value-of-an-attribute-from-xml-file-in-php by cc-by-sa and MIT license