惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
雷峰网
雷峰网
Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
博客园 - 司徒正美
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
爱范儿
爱范儿
月光博客
月光博客
The GitHub Blog
The GitHub Blog
M
MIT News - Artificial intelligence
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog
T
Tailwind CSS Blog
美团技术团队
D
Docker
V
Visual Studio Blog
Martin Fowler
Martin Fowler
博客园 - 聂微东
The Cloudflare Blog

博客园 - 姜伟华

HBase的内存使用 我常用的软件列表 How can I handle a destructor that fails 让windows explorer总是打开文件夹视图的方法 转一个windows "无法停止‘通用卷’设备"的解决方法 终于看到外界宣传我们的产品 Intel XML Software Suite了。 将PDF文件放大缩小 一篇非常不错的探讨pure virtual function call错误的文章。 D-LINK DI-524无线路由器变身DI-624,解决BT断线问题 Emacs在FreeNX下不工作 gdb中如何使用shell环境变量 我的GVIM配置 终于毕业了 放弃office,拥抱latex 终于选定了编辑器了 郁闷的夏天 Jikes RVM中 Java 循环的识别 在PearPC上安装Mandrake 9.1 for PPC的经历 今天复旦软院的第一届学生就要毕业了
开始写XML Code了
姜伟华 · 2005-08-19 · via 博客园 - 姜伟华

非常奇怪的一件事情:我已经在XML这个领域工作了快一年了。而且对于XML的各种规范,例如XML、Schema、Namespace、XSLT、XPath、XQuery,已经它们的最新进展都很熟悉了,各种规范中的犄角嘎拉的咚咚都比较了解了。但我却从来没有用流行的XML包(例如Xerces、JDOM、DOM4J等等)写过任何XML程序。
现在终于要写XML程序了,结果发现自己对于Xerces中的复杂类系统感到无所适从。我想实现这样一个功能:对于DOM中的每个Element,都能够记录它在源文件中的行号。但是这个要求好像有点高。看了Xerces的Mailing List,好像只有一个人提到了这个问题,它的解决方法是:
>
> >Is there a way to get the current number from the sax2 parser?  Either
> >from the implementation of the DefaultHandler's beginElement or
> >endElement callbacks or from the object that has access the the
> >SAX2XMLReaderImpl object?
> >
> >Chris
> >
> >
> >
> I don't know if you've solved this already or not, but you can just
> implement setDocumentLocator from ContentHandler, and set the Locator a
> global variable.
> Then in startElement or endElement you just query the Locator. Easy as that.

我看了一下,XMLScanner类中的成员ReaderMgr实现了Locator接口。但我如何把这个成员像上面所说的那样,变成一个全局变量呢?难道修改Xerces的源代码?
另外,如何用SAXParser去实现一个DOM Tree呢?

另外,找到的方法就是JDOM,在JDOM-contrib中实现了一个LineNumberSAXBuilder和LineNumberElement,好像用它们可以很轻松的实现带行号信息的DOM Tree。

现在的问题就是用什么语言去实现了?如果用Java的话,JDOM显然很不错;而如果用C++的话,JDOM就不能用了。这样,就要去试Xerces的那种方法了。这个问题就不是我能决定的了,只有去问老板的意见了。