Maison > développement back-end > Tutoriel XML/RSS > Résumé de l'utilisation de la recherche de documents XML

Résumé de l'utilisation de la recherche de documents XML

黄舟
Libérer: 2017-03-03 17:06:20
original
1945 Les gens l'ont consulté

Lorsque vous traitez des documents XML dans .NET, vous devez souvent trouver les données d'un certain nœud dans le document. Il existe de nombreuses façons de trouver un certain nœud. Je vais résumer ici quelques méthodes couramment utilisées pour vous.

Tout d'abord, ce que nous devons faire est de charger un document XML dans un objet XmlDocument.

Citez d'abord quelques espaces de noms :

  using System.Xml; 
  using System.Xml.Xsl; 
  using System.Xml.XPath;
Copier après la connexion


Vous connaîtrez la signification de ces espaces de noms en fonction de leurs noms, mais je ne serai pas là . Trop de choses à dire. Ensuite, il y a le code pour charger le fichier XML, comme suit :


String xmlfile="c:/member.xml"; //其中的xmlfile是你要载入的XML文件的路径。 
  XmlDocument myDoc = new XmlDocument(); //定义一个XmlDocument对象。 
  myDoc.Load(xmlfile);
Copier après la connexion



De cette façon, nous avons un document XML appelé myDoc. Cherchons maintenant quelques nœuds dans ce document. Examinons d'abord le contenu de ce fichier XML.

<?xml version="1.0" encoding="UTF-8"?> 
  <members> 
   <member> 
   <name>Tim</name> 
   <hobby>reading</hobby> 
   <homepage>www.aspcool.com</homepage> 
   </member> 
   <member> 
   <name>Sandy</name> 
   <hobby>learning</hobby> 
   </member> 
   <member> 
   <name>Shally</name> 
   <hobby>tranlating</hobby> 
   </member> 
   <member> 
   <name>Christine</name> 
   <hobby>working</hobby> 
   </member> 
  </members>
Copier après la connexion


Nous pouvons maintenant utiliser la méthode suivante pour trouver le nœud nommé tim :
myDoc.ChildNodes.Item(1).ChildNodes.Item(0) .FirstChild.InnerText

Cette méthode nous oblige à rechercher couche par couche les données dont nous avons besoin. S'il y a plusieurs couches, cela sera très laborieux et sujet aux erreurs. Heureusement, .NET nous fournit une autre méthode, les méthodes SelectSingleNode et SelectNodes qui nous permettent de trouver directement les données souhaitées. Par exemple, si nous voulons trouver le hobby de l'utilisateur nommé "Tim", nous pouvons utiliser la méthode suivante :
myDoc.SelectSingleNode ("//member[name='Tim']").ChildNodes.Item( 1). InnerText

Où // représente le nœud enfant de n'importe quelle couche à l'intérieur. De cette façon, nous pouvons trouver rapidement ce que nous cherchons. SelectSingleNode trouve un seul nœud et SelectNodes peut trouver plusieurs nœuds.

Tout le monde sait comment trouver un nœud enfant en XML. Nous recherchons maintenant un nœud enfant dans un fichier XML spécial --- Fichier XSL.

Supposons que j'ai maintenant un fichier XSL comme celui-ci :

 <?xml version="1.0" encoding="gb2312"?> 
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> 
   <xsl:PReserve-space elements="codes"/> 
   <xsl:template match="/"> 
   <xsl:apply-templates/> 
   </xsl:template> 
   
   <xsl:template match="image"> 
   <table align="{@location}"> 
   <tr> 
   <td> 
   <img align="{@location}" alt="{text()}"> 
   <xsl:attribute name="src">../FTP_Magazine/FTP_Issue/<xsl:value-of select="@url"/></xsl:attribute> 
   </img> 
   </td> 
   </tr> 
   <tr> 
   <td> 
   <center> 
   <xsl:apply-templates/> 
   </center> 
   </td> 
   </tr> 
   </table> 
   </xsl:template> 
     </xsl:stylesheet>
Copier après la connexion


Nous avons deux variables dans asp.net et nous avons besoin du fichier XSL pour be in Ces deux variables sont utilisées lors de la transformation de fichiers XML. Comment faisons-nous cela ?

La méthode que j'ai utilisée consiste à charger d'abord le fichier XSL en tant que document XML. Avant de l'utiliser, nous trouvons le nœud qui doit être modifié et le modifions avec nos variables. Pour le moment, nous devons apporter quelques modifications lors de la recherche de ce nœud. Le code est le suivant :

XmlNamespaceManager nsmanager = new XmlNamespaceManager(xslDoc.NameTable); 
  nsmanager.AddNamespace("xsl", "http://www.w3.org/1999/XSL/Transform"); 
  xslDoc.SelectSingleNode("//xsl:attribute[@name=&#39;src&#39;]", nsmanager).InnerXml = 你所需要输给的变量
Copier après la connexion


En d'autres termes, pour quelque chose comme définissez un XmlNamespaceManager et utilisez-le pour trouver le nœud dont nous avons besoin.

Ce qui précède est le résumé de l'utilisation de la recherche de documents XML. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


É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