相关疑难解决方法(0)

libxml2 vs expat用于XMPP服务器

我正试图在Go中从头开始创建一个XMPP库(以及后来的服务器)(尽管语言本身是无关紧要的),作为一种学习XMPP协议和服务器软件开发的方法.

正如你们许多人所知,XMPP是基于XML的消息传递协议,它依赖于大量短而频繁的XML流.我认为对于这样的应用程序,基于事件的XML解析器应该更好,因为我不需要DOM和所有这些(如果我错了,请纠正我).请记住,此库适用于服务器,因此可能会同时运行多个实例;

对于该用例libxml2或expat,两者中哪一个具有更好的性能和内存使用?

c xmpp go libxml2 expat-parser

6
推荐指数
1
解决办法
7012
查看次数

PHP - 读取和修复大的无效XML文件

我必须阅读一些非常繁重的XML文件(介于200 MB和1 GB之间),对于其中一些文件来说,这些文件无效.让我举个小例子:

<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
  <item>
    <title>Some article</title>
    <g:material><ul><li>50 % Coton</li><li>50% Lyocell</li></g:material>
  </item>
</rss>
Run Code Online (Sandbox Code Playgroud)

显然,</ul>标签中缺少结束g:material标签.此外,开发此Feed的人应该将封闭的g:material内容放入CDATA其中,但他们没有...基本上,这就是我想要做的事情:添加这个缺失的CDATA部分.

我曾尝试使用SAX解析器来读取此文件,但在读取</g:material>标记时失败,因为</ul>标记丢失.我尝试过使用XMLReader,但基本上遇到了同样的问题.我可以用DomDocument :: loadHtml做一些事情,但是这个文件的大小与DOM方法并不真正兼容.您是否知道我如何才能简单地修复此Feed而无需为DomDocument购买大量内存来运行?谢谢.

php xml sax

6
推荐指数
1
解决办法
1640
查看次数

标签 统计

c ×1

expat-parser ×1

go ×1

libxml2 ×1

php ×1

sax ×1

xml ×1

xmpp ×1