Comment une personne peut-elle valider qu'un élément spécifique existe dans un fichier XML? Dites que j'ai un fichier XML en constante évolution et que je dois vérifier chaque élément avant de le lire/l'analyser.Vérifier si l'élément XML existe
Répondre
if(doc.SelectSingleNode("//mynode")==null)....
devrait le faire (où doc est votre objet XmlDocument, évidemment)
Sinon, vous pouvez utiliser un XSD et valider contre cette
Je ne sais pas ce que vous êtes désireux de faire, mais en utilisant un DTD ou schéma peut être tout ce dont vous avez besoin pour valider le xml.
Sinon, si vous voulez trouver un élément, vous pouvez utiliser une requête xpath pour rechercher un élément particulier.
Où est la réponse à la question "Comment" – Sam
@sam - la question n'était pas particulièrement claire alors donner quelques conseils est tout à fait ok A MON HUMBLE AVIS. En cherchant plus loin sur xpath ou dtd, vous obtiendrez plus de code que vous ne pouvez en faire un! Y a-t-il un problème particulier avec lequel vous trafiquez? Je vais essayer d'aider. – paul
Vous pouvez parcourir tous les nœuds et voir si un nœud existe.
doc.Load(xmlPath);
XmlNodeList node = doc.SelectNodes("//Nodes/Node");
foreach (XmlNode chNode in node)
{
try{
if (chNode["innerNode"]==null)
return true; //node exists
//if ... check for any other nodes you need to
}catch(Exception e){return false; //some node doesn't exists.}
}
Vous itérer tous les éléments de nœud sous le nœud (que c'est la racine) et vérifiez si le nœud nommé « innerNode » (ajouter d'autres si vous avez besoin) existe. try..catch est parce que je soupçonne que cela jettera l'erreur «référence d'objet non définie» populaire si le noeud n'existe pas.
Voici une fonction simple pour vérifier si un nœud particulier est présent ou non dans le fichier xml.
public boolean envParamExists(String xmlFilePath, String paramName){
try{
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(xmlFilePath));
doc.getDocumentElement().normalize();
if(doc.getElementsByTagName(paramName).getLength()>0)
return true;
else
return false;
}catch (Exception e) {
//error handling
}
return false;
}
en plus de sangam
Code
if (chNode["innerNode"]["innermostNode"]==null)
return true; //node *parentNode*/innerNode/innermostNode exists
Que diriez-vous d'essayer ceci:
using (XmlTextReader reader = new XmlTextReader(xmlPath))
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
//do your code here
}
}
}
// si le problème est "juste" pour vérifier que l'élément existe dans le fichier xml devant vous // extraire la valeur que vous pourriez faire comme ceci
XmlNodeList YOURTEMPVARIABLE = doc.GetElementsByTagName("YOUR_ELEMENTNAME");
if (YOURTEMPVARIABLE.Count > 0)
{
doctype = YOURTEMPVARIABLE[0].InnerXml;
}
else
{
doctype = "";
}
Un peu en retard, mais si elle aide, cela fonctionne pour moi ...
XmlNodeList NodoEstudios = DocumentoXML.SelectNodes("//ALUMNOS/ALUMNO[@id=\"" + Id + "\"]/estudios");
string Proyecto = "";
foreach(XmlElement ElementoProyecto in NodoEstudios)
{
XmlNodeList EleProyecto = ElementoProyecto.GetElementsByTagName("proyecto");
Proyecto = (EleProyecto[0] == null)?"": EleProyecto[0].InnerText;
}
// Vérifiez la valeur de l'élément XML si existe en utilisant XmlReader
using (XmlReader xmlReader = XmlReader.Create(new StringReader("XMLSTRING")))
{
if (xmlReader.ReadToFollowing("XMLNODE"))
{
string nodeValue = xmlReader.ReadElementString("XMLNODE");
}
}
- 1. C# LINQ pour vérifier XML si l'élément existe
- 2. Hibernation: vérifier si l'objet existe
- 3. Vérifier si l'URI relative existe
- 4. Vérifier si un élément existe
- 5. ADO.Net Excel, Vérifier si une table existe?
- 6. vérifier si le nom d'utilisateur existe
- 7. Vérifier si un cadre existe avec jQuery
- 8. XSl: Variable - Condition pour vérifier si la valeur existe
- 9. comment vérifier si un fichier existe avant de le créer
- 10. Dans ActionScript, quelle est la meilleure façon de vérifier si une propriété de noeud xml existe?
- 11. Comment puis-je vérifier si un noeud existe dans un fichier XML?
- 12. MSBuild: Comment puis-je vérifier si un processus existe?
- 13. Ant: Vérifier si la classe existe dans un fichier jar
- 14. Comment vérifier si un fichier existe en javascript?
- 15. Comment vérifier si un contrôleur existe en utilisant Zend Framework
- 16. Comment vérifier si une variable existe dans un modèle FreeMarker?
- 17. Vérifier si un répertoire existe sur un autre serveur ksh
- 18. Comment puis-je vérifier .htaccess si un nouveau fichier existe?
- 19. Comment vérifier si le fichier existe sur FTP avant FtpWebRequest
- 20. Comment vérifier si un fichier existe dans un fichier makefile
- 21. Ext JS xtemplate question - vérifier si le champ existe
- 22. Vérifier si un élément existe dans Action Script
- 23. SharePoint: Vérifier si l'élément existe dans une liste, surcharge minimale
- 24. Comment vérifier si le chemin d'installation du projet C# existe
- 25. Comment vérifier si un répertoire donné existe dans Ruby
- 26. Comment vérifier si une procédure stockée existe dans SQL Azure?
- 27. vérifier fichier existe java
- 28. Existe-t-il un moyen plus rapide de vérifier si une page Web externe existe?
- 29. Comment vérifier si c'est null?
- 30. Valeur décimale Vérifier si zéro
Que signifie le "//" représenter? – Qsiris
@Qsiris "//" est XPath et signifie sélectionner n'importe quel élément mynode, où que ce soit – Verakso