Maison > développement back-end > tutoriel php > Comment puis-je accéder aux noms de nœuds XML avec trait d'union à l'aide de SimpleXML ?

Comment puis-je accéder aux noms de nœuds XML avec trait d'union à l'aide de SimpleXML ?

Susan Sarandon
Libérer: 2024-12-05 22:02:14
original
655 Les gens l'ont consulté

How Can I Access Hyphenated XML Node Names Using SimpleXML?

Lecture de nœuds XML avec des noms avec trait d'union dans SimpleXML

SimpleXML, une bibliothèque PHP pour analyser des documents XML, peut rencontrer des difficultés lors de la lecture de nœuds avec des noms avec trait d'union noms. Par exemple, considérons le XML ci-dessous :

<?xml version="1.0" encoding="UTF-8"?>
<gnm:Workbook xmlns:gnm="http://www.gnumeric.org/v10.dtd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.gnumeric.org/v9.xsd">
  <office:document-meta xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" office:version="1.1">
    <office:meta>
      <dc:creator>Mark Baker</dc:creator>
      <dc:date>2010-09-01T22:49:33Z</dc:date>
      <meta:creation-date>2010-09-01T22:48:39Z</meta:creation-date>
      <meta:editing-cycles>4</meta:editing-cycles>
      <meta:editing-duration>PT00H04M20S</meta:editing-duration>
      <meta:generator>OpenOffice.org/3.1$Win32 OpenOffice.org_project/310m11$Build-9399</meta:generator>
    </office:meta>
  </office:document-meta>
</gnm:Workbook>
Copier après la connexion

Une tentative de lecture du nœud office:document-meta à l'aide de la méthode children() de SimpleXML entraîne l'erreur "Utilisation d'une méta constante non définie - supposée 'méta'". En effet, SimpleXML interprète le trait d'union comme un opérateur de soustraction.

Solution

Pour résoudre ce problème, utilisez des accolades au lieu du trait d'union :

$officeXML->{'document-meta'}
Copier après la connexion

Cette syntaxe vous permet d'accéder au nœud méta-document.

Accès aux traits d'union Attributs

Bien que les noms d'éléments avec trait d'union nécessitent la syntaxe d'accolades, les attributs avec trait d'union sont accessibles en utilisant la notation de tableau régulière :

$root = new SimpleXMLElement($xml);
echo $root->{'hyphenated-element'}['hyphenated-attribute']; // prints "bar"
Copier après la connexion

Reportez-vous à la documentation SimpleXML Basics pour des exemples supplémentaires.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal