2010-10-05 86 views
0

我想分析一个简单的XML文件,并创建简单的语法着色...解析XML和运用语法颜色

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

因此,所有的<和>是蓝色 节点名称是红色 和值是黑色的。

我想知道是否有人有一个很好的正则表达式做到这一点?现在我正在使用forloop,并逐字逐字地...... ....并不真的认为这是寻找想法的最佳方式。

我的XML很简单,永远不会有属性,只是一个简单的模式,就像上面的例子。我想将其转换为html。

想法?

+0

什么显示机制会显示语法着色?你转换为HTML? – 2010-10-05 19:42:14

+0

是的HTML,对不起....刚刚添加到这个问题。 – Gabe 2010-10-05 19:45:23

+0

没有正则表达式。如果您需要XSLT解决方案,请说明。 – 2010-10-05 21:50:15

回答

2

你没有提到你如何渲染输出。但是, 作为一个起点,您可以使用XmlTextReader来读取XML节点,然后在您点击每个节点时发出适当的HTML输出,而不是逐个字符地解析文档。

例如,当您到达元素节点时,可以用CSS呈现蓝色,node.Name呈红色,'>'呈蓝色,您写出的所有其他节点类型写出'<'黑色。所以解析由XmlTextReader处理,你只是简单地负责演示。

+0

如何保持缩进? – Gabe 2010-10-05 20:11:05

+0

读者可以返回空白节点,然后您可以编写适当的html来显示空白。 http://msdn.microsoft.com/en-us/library/system.xml.xmlnodetype.aspx – 2010-10-05 20:30:28