Cet article présente principalement la méthode d'analyse PHP de XML et de génération d'instructions SQL, impliquant les compétences opérationnelles de PHP liées à la lecture, à l'analyse et à l'épissage de chaînes SQL de fichiers au format XML. Les amis dans le besoin peuvent s'y référer
Le. L'exemple de cet article décrit comment PHP analyse XML et génère des instructions SQL. Je le partage avec vous pour votre référence. Les détails sont les suivants :
Il existe de nombreuses façons d'analyser XML en PHP. Il existe de nombreuses méthodes dans le document. Vous pouvez en trouver beaucoup simplement en effectuant une recherche.
Aujourd'hui, j'ai rencontré une exigence : extraire les attributs du nœud d'un certain XML, puis mettre à jour un champ dans une table de la base de données.
Idée :
Analysez le XML et obtenez tous les attributs du nœud –> Parcourez la collection de nœuds et obtenez les attributs correspondants –> stockez-le dans un tableau –> Convertissez le tableau en chaîne et enregistrez-le dans un fichier
Xpath est utilisé ici Deux problèmes ont été rencontrés lors du processus d'écriture du code :
1. . Le chemin historique de xml Le fichier ne peut pas être chargé lorsque l'attribut est D:xx..., il suffit de le remplacer par "/" (le délimiteur sous Linux)
2. Récupérer les attributs d'un nœud, utilisez ::attributes, et l'éditeur s'arrêtera. Invite rouge, trouvera le document d'une demi-journée et enfin utiliser ->getAttribute() (je suppose que, parce que c'est trop étrange, il prend en charge ->previousSibling et ->nodeValue ), suivez directement DOMElement::getAttribute sur le document. Une erreur a été signalée..
Voici l'exemple de code :
<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 "生成完毕!"; ?>
Étant donné que les données proviennent de Générées à partir de la table de base de données, le nombre de nœuds trouvés correspond au nombre total d'enregistrements dans la table. Après la génération, vous pouvez vérifier si le contenu est correct, puis exécuter le script SQL pour atteindre l'objectif.
PS : Voici plusieurs outils en ligne pour les opérations XML pour votre référence :
XMLOutil de conversion mutuelle/JSON :
http://tools.jb51.net/code/xmljson
Format en ligne TransformXML/Compression en ligneXML :
http://tools.jb51.net/code/xmlformat
XMLOutil de compression/formatage en ligne :
http://tools.jb51.net/code/xml_format_compress
XMLOutil de formatage et d'embellissement du code en ligne :
http://tools.jb51.net/code/xmlcodeformat
Implémentation PHP d'un exemple d'opération de capture de groupe d'expressions régulières, compétences PHP
PHP réalise le développement principe et processus de mise en œuvre de l'exemple php de connexion QQ
Explication détaillée du chargement automatique des fichiers PHP exemple php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!