6
votes

Lire gml en c #

J'ai un problème avec la lecture des fichiers GML en C #. Mes fichiers n'ont pas de schéma ou d'espaces de noms et ne ressemble à un fichier de cette question:

analyse des données GML à l'aide de c # linq à xml

uniquement whitout le schéma comme ceci: xxx

Quand j'essaie de Lisez le document avec xdocument.load méthode, je reçois une exception en disant: 'space de noms «GML» n'est pas défini .

J'ai beaucoup de fichiers GML donc je ne veux donc pas ajouter le schéma et les espaces de noms à tous mes fichiers. Est-ce que quelqu'un sait lire mes fichiers?


0 commentaires

3 Réponses :


1
votes

Vous pouvez ajouter votre espace de noms et taper de manière programmative.

chargez votre fichier dans une chaîne à l'aide de fichier.readalltext (nom de fichier) , ajoute les informations de type Neccesary et d'espace de noms et analysez-le à l'aide de xdocument.parse au lieu de Charge .


0 commentaires

2
votes

Sauf si vous déclarez l'espace de noms associé au préfixe "GML", votre texte n'est pas valide XML + Namespaces.

Vous pouvez implémenter une étape de pré-processus qui a fait quelque chose comme (pseudo code): P>

string text = ReadFromFile();
text = text.replace(" srsName=", " xmlns:gml=");
xmlDocument.LoadXml(text); 


0 commentaires

6
votes

Utilisez une xmltextreader avec un XMLAMESPAcAcAnerger. Voir un exemple sur MSDN ici: http: // msdn. Microsoft.com/en-us/Library/system.xml.xmlnamespacakemanager.xmlnamespacemanager.aspx


0 commentaires