Maison  >  Article  >  développement back-end  >  Explication détaillée des étapes permettant à PHP d'analyser XML et de générer des instructions SQL

Explication détaillée des étapes permettant à PHP d'analyser XML et de générer des instructions SQL

php中世界最好的语言
php中世界最好的语言original
2018-05-19 10:44:461601parcourir

Cette fois, je vais vous apporter une explication détaillée des étapes pour analyser XML et générer des instructions SQL en php. Quelles sont les précautions pour que PHP analyse XML et génère des instructions SQL. cas, jetons un coup d'oeil.

Il existe de nombreuses façons d'analyser XML en PHP, et il y en a beaucoup dans la documentation. Il suffit de les rechercher.

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 :

Analyser le XML et obtenir tous les attributs du nœud –> Boucler la collection de nœuds et obtenir les attributs correspondants –> 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 du 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, utiliser ::attributs, et l'éditeur arrêtera l'invite rouge, trouvera le document d'une demi-journée et enfin utilisera ->getAttribute() (devinez, 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=&#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.'--'.$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 "生成完毕!";
?>

Parce que les données est généré à partir de la table de la base de données, le nombre de nœuds trouvés C'est le 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.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Explication détaillée des étapes pour transmettre les paramètres lors de l'ouverture d'une application exe locale avec php et js

Dépendances d'implémentation de la réflexion de classe PHP Explication détaillée des étapes d'injection

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn