我已经开始使用Google的Go语言进行编程,我尝试编写的包是一个用于处理和创建DOCX文件的API (我熟悉这个主题,并且认为这将是学习Go的一个好方法)。由于DOCX文件主要是包含各种XML文件的ZIP文件,因此我需要一个DOM XML解析器。但是,我找不到任何原生的Go DOM XML解析器,因为我看到的惟一的解析器似乎非常有限,而且可能是SAX解析器(任何使用Go的人,如果我错了,请纠正我)。
因此,在刚刚过去的这个周末,我编写了一个非常基本的DOM解析器,它能够解析DOCX包中较简单的XML文件之一,并原封不动地输出。目前,我不打算为Namespace、XSLT或模式验证支持而烦恼,因为这些对于操作DOCX文件没有什么用处。我的问题是,将哪些其他XML标准和功能合并到解析器中会很重要?
目前,它只是创建了一个元素和属性树,我可以修改和保存它们。我目前不处理CDATA元素或XML转义字符(尽管这些操作很容易,我将在本周末介绍)。
发布于 2010-09-15 08:29:44
首先:如果你特别想做DOM解析器,你需要实现DOM API。但我不确定您是否真的是这个意思;也许您只是指一个生成XML树模型(“dom”)的XML解析器;或者仅仅是一个XML解析器?DOM不是唯一的方法。还要注意,使用SAX解析器实现DOM树模型是最常见的方法;很少有DOM包具有嵌入式解析器,解析器通常是单独公开的。
至于XML解析器特性,在我看来,其中一些是必须的:
字符实体(与号和数字)的
) xml声明的
非常简单
其他最终有用的东西包括:
根据xml specification,lineefeds的
发布于 2010-09-15 21:51:45
你看过Go的XML解析器吗?http://golang.org/pkg/xml/
如果它缺少您需要的功能,添加它可能仍然比滚动您自己的功能更容易。
https://stackoverflow.com/questions/3713811
复制相似问题