2014-10-20 2 views
-1

simplexml_load_file을 사용하여 외부 사이트에서 데이터를 가져와 내 로컬 데이터베이스에 덤프해야합니다. 내 SQL 삽입을 수행 할 수 있도록 데이터를 구문 분석하는 방법을 모르겠습니다. simplexml_load_file 결과에서 열 머리글 및 값을 가져 오는 방법을 알려주십시오. 왜냐하면 나는 항상 제목의 이름을 알지 못할 수도 있기 때문에 이상적으로 변수로 표제와 값을 가져 와서 SQL에 두 열의 값으로로드해야합니다. column_nam 및 column_value. 43413dc74e459ecb | | 41b5f89600000000 | 41c18afc4b000000 | )xml을 mysql db로 읽는 법

[OBJECT] => SimpleXMLElement Object 
    (
     [@attributes] => Array 
      (
       [name] => clinicalreport 
       [op] => search_filedelivery 
      ) 

     [reports_viewed] => SimpleXMLElement Object 
      (
      ) 

     [reports_delivered] => SimpleXMLElement Object 
      (
      ) 

     [clinicalreport] => 3006163008 
     [orders_transmitted] => SimpleXMLElement Object 
      (
      ) 

     [report_request_date] => 10/7/2014 9:17 AM 
     [reports_undelivered] => SimpleXMLElement Object 
      (
      ) 

     [person_middle_name] => R 
     [reports_printed] => SimpleXMLElement Object 
      (
      ) 

     [creation_date] => SimpleXMLElement Object 
      (
      ) 

     [ownerid] => 3003154010 
     [reports_count] => SimpleXMLElement Object 
      (
      ) 

     [sponsor_name] => LabCorp Birmingham 
     [receivingorganization] => 3003154010 
     [organization_name] => SimpleXMLElement Object 
      (
      ) 

     [sponsor] => 1502182 
     [document] => SimpleXMLElement Object 
      (
      ) 

     [clearance] => 10 
     [report_subject] => HL7 Order Copy 
     [report_service_date] => 10/7/2014 9:19 AM 
     [reports_forwarded] => SimpleXMLElement Object 
      (
      ) 

     [forwarded] => SimpleXMLElement Object 
      (
      ) 

     [std_orders_created] => SimpleXMLElement Object 
      (
      ) 

     [person_last_name] => Angles 
     [is_viewed] => SimpleXMLElement Object 
      (
      ) 

     [is_latest] => SimpleXMLElement Object 
      (
      ) 

     [is_abnormal] => SimpleXMLElement Object 
      (
      ) 

     [expiration_date] => 4/5/2015 9:19 AM 
     [sequence] => SimpleXMLElement Object 
      (
      ) 

     [is_annotated] => SimpleXMLElement Object 
      (
      ) 

     [originalreport] => SimpleXMLElement Object 
      (
      ) 

     [person_account_number] => 1799 
     [filler_order_number] => SimpleXMLElement Object 
      (
      ) 

     [placer_order_number] => SimpleXMLElement Object 
      (
      ) 

     [is_forwarded] => SimpleXMLElement Object 
      (
      ) 

     [report_priority] => SimpleXMLElement Object 
      (
      ) 

     [person] => SimpleXMLElement Object 
      (
      ) 

     [receiving_cg_fname] => SimpleXMLElement Object 
      (
      ) 

     [creation_datetime] => 10/7/2014 9:19 AM 
     [receiving_cg_lname] => SimpleXMLElement Object 
      (
      ) 

     [is_downloaded] => N 
     [receiving_cg_mname] => SimpleXMLElement Object 
      (
      ) 

     [report_status] => NA 
     [lab_code] => MB 
     [ordering_cg_suffix] => SimpleXMLElement Object 
      (
      ) 

     [ordering_cg_fname] => SimpleXMLElement Object 
      (
      ) 

     [ordering_client_id] => 8001631 
     [person_first_name] => Madeleine 
     [report_type] => ORDER 
     [ordering_cg_lname] => SimpleXMLElement Object 
      (
      ) 

     [ordering_cg_mname] => SimpleXMLElement Object 
      (
      ) 

     [previousreport] => SimpleXMLElement Object 
      (
      ) 

     [orderresult] => SimpleXMLElement Object 
      (
      ) 

     [receiving_cg_suffix] => SimpleXMLElement Object 
      (
      ) 

     [psc_orders_created] => SimpleXMLElement Object 
      (
      ) 

     [receiving_client_id] => 8001631 
     [is_printed] => SimpleXMLElement Object 
      (
      ) 

     [content_expiration_date] => 2/4/2015 9:19 AM 
     [person_suffix] => SimpleXMLElement Object 
      (
      ) 

     [abnormals_count] => SimpleXMLElement Object 
      (
      ) 

    ) 
아래에서 print_r

SimpleXMLElement 개체 ( [@attributes] => 배열 ( [SessionID를] => p_panda143ccfcf692ede95e을 usnig 데이터의 예는

)

답변

0

답변을 찾았습니다. 하지만 먼저 내 질문에 '-1'이 나와 있습니다.

해결 방법 - 새로운 기능 xml2array에서 simplexml_load_file의 결과를 보내야했습니다. 이 함수는 각 이름과 값을 알려주었습니다.

$myXML = simplexml_load_file($url); 

function xml2array($myXML) { 
    $arr = array(); 
    foreach ($myXML as $element) { 
    $tag = $element->getName(); 
    $e = get_object_vars($element); 
    if (!empty($e)) { 
     $arr[$tag] = $element instanceof SimpleXMLElement ? xml2array($element) : $e; 
    } 
    else { 
     $arr[$tag] = trim($element); 
    } 
    } 
    return $arr; 
} 

나는 여기에 기능 http://bookofzeus.com/articles/convert-simplexml-object-into-php-array/

발견