Maison > développement back-end > tutoriel php > Méthode PHP pour analyser XML et générer des conseils PHP d'instruction SQL

Méthode PHP pour analyser XML et générer des conseils PHP d'instruction SQL

jacklove
Libérer: 2023-04-01 22:24:02
original
1435 Les gens l'ont consulté

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=&#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 "生成完毕!";
?>
Copier après la connexion

É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

Articles qui pourraient vous intéresser :

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal