>  기사  >  백엔드 개발  >  XML을 구문 분석하고 SQL 문을 생성하는 PHP 방법 PHP 팁

XML을 구문 분석하고 SQL 문을 생성하는 PHP 방법 PHP 팁

jacklove
jacklove원래의
2018-06-28 17:31:361395검색

이 글에서는 주로 PHP가 XML을 파싱하고 SQL 문을 생성하는 방법을 소개하며, XML 형식 파일의 읽기, 파싱 및 SQL 문자열 접합과 관련된 PHP의 작동 기술이 필요하면 참고할 수 있습니다.

이 글에서는 PHP가 구현하는 예제를 설명합니다. xml을 파싱하고 sql문을 생성하는 방법. 참고용으로 공유합니다.

PHP에서 XML을 구문 분석하는 방법은 여러 가지가 있습니다. 검색만 해도 많은 방법을 찾을 수 있습니다.

오늘 요구 사항이 발생했습니다. 특정 XML에서 노드 속성을 추출한 다음 데이터베이스의 특정 테이블에 있는 필드를 업데이트해야 합니다.

아이디어:

XML을 구문 분석하고 모든 노드 속성을 가져옵니다. –> 노드 컬렉션을 반복하고 해당 속성을 가져옵니다. –> SQL 문자열을 연결하여 배열에 저장합니다. 여기서는

xpath가 사용됩니다. 코드를 작성하는 중에 두 가지 문제가 발생했습니다.

1.xml의 기록 경로 속성이 D:xx인 경우 파일을 로드할 수 없습니다. , 따라서 "/"(리눅스 아래) 구분 기호로 변경됩니다.

2. 노드의 속성을 얻으려면 ::attributes를 사용하세요. 편집기는 빨간색으로 계속 메시지를 표시하고 반나절 문서를 찾은 다음 마지막으로 다음을 사용합니다. ->getAttribute() (너무 이상하기 때문에 ->previousSibling 및 ->nodeValue를 지원함) 문서에 따르면 DOMElement::getAttribute는 오류를 직접 보고합니다.

다음은 다음과 같습니다. 샘플 코드:

<title>xml 转换为 sql</title>
<meta http-equiv=&#39;content-type&#39; content=&#39;text/html; charset=utf-8&#39; />
<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=&#39;tip_info&#39;>总共找到:<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.&#39;--&#39;.$name.&#39;--&#39;.$inf."</p>";
  $idx++;
  array_push($arr, "update dress_item t SET t.s_name=&#39;".$name."&#39;,t.s_intro=&#39;".$inf."&#39; 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 스크립트를 실행하여 목적을 달성할 수 있습니다.

PS: 참조용으로 XML 작업을 위한 여러 온라인 도구가 있습니다.

온라인 XML/JSON 상호 변환 도구:
http://tools.jb51 .net/code/xmljson

온라인 서식XML/온라인 압축XML:
http://tools.jb51.net/code/xmlformat

XML온라인 압축/서식 도구:
http://tools.jb51.net/code/xml_format_compress

XML코드 온라인 서식 지정 및 미화 도구:
http://tools.jb51.net/code/xmlcodeformat

기사 관심이 있으실 수도 있습니다:

정규식 그룹 캡처 작업의 PHP 구현 예제 PHP 기술

QQ 로그인 원리 및 구현 프로세스의 PHP 구현 PHP 예제

PHP 자동 로딩에 대한 자세한 설명 PHP 예제 파일

위 내용은 XML을 구문 분석하고 SQL 문을 생성하는 PHP 방법 PHP 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.