Maison >développement back-end >C++ >Comment utiliser XElement pour créer des documents XML avec des espaces de noms et des préfixes ?

Comment utiliser XElement pour créer des documents XML avec des espaces de noms et des préfixes ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-31 07:04:12513parcourir

How to Use XElement to Create XML Documents with Namespaces and Prefixes?

Espaces de noms XElement

Ce guide montre comment créer des documents XML avec des préfixes de nœud à l'aide de XElement.

Création Documents XML avec préfixe de nœud

Pour créer des documents XML avec nœud préfixe, suivez les étapes suivantes :

  1. Définissez l'espace de noms :
XNamespace ns = "http://url/for/sphinx";
  1. Créez un élément avec le préfixe :
XElement element = new XElement(ns + "docset");

Gestion des exceptions

Si vous rencontrez l'exception "System.Xml.XmlException : le caractère ':', valeur hexadécimale..." lorsque vous essayez de créer un élément avec un préfixe d'espace de noms, assurez-vous que vous utilisez l'espace de noms au format correct. Utilisez la méthode GetNamespacePrefix pour récupérer le préfixe correct pour l'espace de noms fourni, comme indiqué ci-dessous :

XNamespace ns = XNamespace.Get("http://url/for/sphinx");
XElement element = new XElement(ns.GetNamespacePrefix() + "docset");

Création de documents XML complexes

Pour créer des documents XML plus complexes avec éléments et attributs imbriqués, vous pouvez utiliser l'exemple suivant :

XNamespace ns = "http://url/for/sphinx";
XElement container = 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"))));

Ce code produira le XML suivant document :

<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:docset>
</container>

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