PHP에서 xml을 구문 분석하는 방법은 여러 가지가 있습니다. 문서에는 검색만으로 모든 방법을 찾을 수 있습니다.
오늘 요구 사항이 발생했습니다. 특정 XML에서 노드 속성을 추출한 다음 데이터베이스의 특정 테이블에 있는 필드를 업데이트해야 합니다. 이 기사에서는 주로 PHP가 XML을 구문 분석하고 SQL 문을 생성하는 방법을 소개하며, XML 형식 파일의 읽기, 구문 분석 및 SQL 문자열 접합과 관련된 PHP의 작업 기술을 참조하면 도움이 될 수 있습니다.
아이디어:
XML을 구문 분석하고 모든 노드 속성을 가져옵니다. –> 노드 컬렉션을 반복하고 해당 속성을 가져옵니다. –> SQL 문자열을 연결하여 배열에 저장합니다. 문자열을 특정 파일에 저장합니다. 여기에는
xpath가 사용됩니다. 코드를 작성하는 과정에서 두 가지 문제가 발생했습니다.
1.xml의 기록 경로 속성이 D:xx인 경우 파일을 로드할 수 없습니다. .. "/"(Linux에서 구분됨)로 변경됩니다. 2. 노드의 속성을 가져오고 ::attributes를 사용하면 편집기가 빨간색 프롬프트를 유지하고 반나절 문서를 찾은 다음 마지막으로 ->getAttribute(를 사용합니다. ) (너무 이상해서 ->previousSibling 및 ->nodeValue를 지원한다고 합니다.) 문서에 따르면 DOMElement::getAttribute가 직접 오류를 보고한다고 합니다.
다음은 샘플 코드입니다. :
<title>xml 转换为 sql</title> <meta http-equiv='content-type' content='text/html; charset=utf-8' /> <style type="text/css"> .tip_info {margin-bottom:10px;} .tip_info span {color:#f00;} </style> <?php $xml = "D:/res/dressConfig.xml"; $doc = new DOMDocument(); $doc->load($xml); $xpath = new DOMXPath($doc); $query = "//i"; $entries = $xpath->query($query); $len = $entries->length; echo "<p class='tip_info'>总共找到:<span>".$len."</span>个节点</p>"; $arr = array(); $idx = 0; while ($idx < $len) { $nodeItem = $entries->item($idx); $id = $nodeItem->getAttribute("i"); $name = $nodeItem->getAttribute("n"); $inf = $nodeItem->getAttribute("inf"); // echo "<p>".$id.'--'.$name.'--'.$inf."</p>"; $idx++; array_push($arr, "update dress_item t SET t.s_name='".$name."',t.s_intro='".$inf."' WHERE t.n_doid=".$id.";"); } $dir = "d:/sql/"; if (!is_dir($dir)) { mkdir($dir); } file_put_contents("d:/sql/dress_item.sql", implode("\n\r", $arr)); echo "生成完毕!"; ?>
관련 권장 사항:
SQL 문을 자동으로 생성하는 방법여러 키워드와 여러 필드가 포함된 SQL 문을 생성하는 PHP 함수PowerDesigner는 Oracle을 연결하여 SQL 문을 생성합니다위 내용은 php에서 xml을 파싱하고 sql문을 생성하는 구현방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!