Maison > développement back-end > C++ > Comment gérer correctement les espaces de noms dans XElement lors de la création de documents XML ?

Comment gérer correctement les espaces de noms dans XElement lors de la création de documents XML ?

Susan Sarandon
Libérer: 2024-12-28 17:22:10
original
629 Les gens l'ont consulté

How to Properly Handle Namespaces in XElement When Creating XML Documents?

Explication des espaces de noms XElement

Lorsque vous essayez de créer des documents XML avec des espaces de noms préfixés à l'aide de XElement, tels que :

<sphinx:docset>
  <sphinx:schema>
    <sphinx:field name="subject"/>
    <sphinx:field name="content"/>
    <sphinx:attr name="published" type="timestamp"/>
  </sphinx:schema>
</sphinx:docset>
Copier après la connexion

vous pouvez rencontrer une exception indiquant que le caractère deux-points n'est pas autorisé dans les noms. Cette réponse complète fournira une explication détaillée et une solution pour résoudre ce problème.

Éléments avec espace de noms dans XElement

Dans LINQ to XML, la création d'éléments avec espace de noms est simple :

XNamespace ns = "sphinx";
XElement element = new XElement(ns + "docset");
Copier après la connexion

Cette approche génère du XML sans la déclaration explicite de l'espace de noms :

<sphinx:docset/>
Copier après la connexion

Aliasing du Espace de noms

Pour que l'alias fonctionne correctement et créer du XML avec des déclarations d'espace de noms explicites, suivez ces étapes :

XNamespace ns = "http://url/for/sphinx";
XElement element = new XElement("container",
    new XAttribute(XNamespace.Xmlns + "sphinx", ns),
    new XElement(ns + "docset",
        new XElement(ns + "schema"),
            new XElement(ns + "field", new XAttribute("name", "subject")),
            new XElement(ns + "field", new XAttribute("name", "content")),
            new XElement(ns + "attr", 
                         new XAttribute("name", "published"),
                         new XAttribute("type", "timestamp"))));
Copier après la connexion

Ce code génère du XML avec la déclaration d'espace de noms souhaitée :

<container xmlns:sphinx="http://url/for/sphinx">
  <sphinx:docset>
    <sphinx:schema>
      <sphinx:field name="subject"/>
      <sphinx:field name="content"/>
      <sphinx:attr name="published" type="timestamp"/>
    </sphinx:schema>
  </sphinx:docset>
</container>
Copier après la connexion

En résumé, créer des éléments avec espace de noms dans LINQ to XML est simple. En suivant ces étapes, vous pouvez gérer efficacement les déclarations d'espace de noms lorsque vous travaillez avec des données XML.

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