2010-10-05 9 views
0

Je veux analyser un simple XML Doc et de créer la coloration de syntaxe simple ...XML Parse et appliquer la couleur de syntaxe

<parent> 
    <child>Value</child> 
    <child> 
     <grandchild>Value2</grandchild> 
    </child> 
</parent> 

donc tous les < et> sont bleus Les noms des noeuds sont rouges et la valeur est noir.

Je me demandais si quelqu'un avait une bonne regex faire cela? En ce moment j'utilise un caractère forloop et caractère par caractère .... ne pense pas vraiment que c'est la meilleure façon de chercher des idées.

Mon XML sera simple, n'aura jamais d'attributs, juste un motif simple comme l'exemple ci-dessus. Je voudrais le convertir en HTML.

Des idées?

+0

Quel mécanisme d'affichage affichera la coloration syntaxique? Convertissez-vous en HTML? –

+0

Oui HTML, désolé .... vient d'ajouter cela à la question. – Gabe

+0

Aucune expression rationnelle. Si vous voulez une solution XSLT, merci de le dire. –

Répondre

2

Vous ne mentionnez pas comment vous affichez la sortie. Mais Comme point de départ, plutôt que d'analyser le document caractère par caractère, vous pouvez utiliser un XmlTextReader pour lire les nœuds XML, puis simplement émettre la sortie HTML appropriée lorsque vous frappez chaque nœud. Par exemple, lorsque vous atteignez un nœud d'élément, vous pouvez écrire le '<' avec un style CSS qui s'affiche en bleu, node.Name en rouge et '>' en bleu, tous les autres types de nœuds que vous écrivez noir. L'analyse est donc gérée par XmlTextReader et vous êtes simplement responsable de la présentation.

+0

Comment maintenir l'indentation? – Gabe

+0

Le lecteur peut renvoyer des nœuds d'espace blanc que vous pouvez ensuite écrire le html approprié pour présenter les espaces. http://msdn.microsoft.com/en-us/library/system.xml.xmlnodetype.aspx –