小编Per*_*ses的帖子

如何构建OCaml交叉编译器

在找到为目标机器生成拟合配置文件的方法之后,仍然必须构建交叉编译器本身.如果主机和目标系统差异太大,那么使用这里描述的1 1/2构建的方法(以及更多细节,这里)似乎不起作用.这是构建脚本的更改部分(可以使用获得$ svn cat svn://svn.psellos.com/trunk/ocamlxarm/3.1/xarm-build)

# Small steps
config1 () {
    # Configure for building bytecode interpreter to run on Intel OS X.
    # But specify * architecture for assembly and partial link.
    echo 'xarm-build: ----- configure phase 1 -----'
    ./configure \
            -prefix "" \
            -no-curses \
            -no-tk \
            -no-graph \
            -as "" \
            -aspp ""\
            -partialld ""
    # Post-modify config/Makefile to select the * back end for
    # ocamlopt (to generate …
Run Code Online (Sandbox Code Playgroud)

ocaml cross-compiling

49
推荐指数
1
解决办法
2847
查看次数

在lxml中过滤无效unicode字符的中心方法?

众所周知,XML文档中不允许使用某些字符范围.我知道过滤掉这些字符的解决方案(如[1],[2]).

按照不要重复自己的原则,我宁愿在一个中心点实现其中一个解决方案 - 现在,我必须在输入之前清理任何可能不安全的文本lxml.有没有办法实现这一点,例如通过继承lxml过滤器类,捕获一些异常或设置配置开关?


编辑:希望有点澄清这个问题,这里是一个示例代码:

from lxml import etree

root = etree.Element("root")
root.text = u'\uffff'
root.text += u'\ud800' 

print(etree.tostring(root))

root.text += '\x02'.decode("utf-8")
Run Code Online (Sandbox Code Playgroud)

执行此操作会得到结果

<root>&#65535;&#55296;</root>

Traceback (most recent call last):
  File "[…]", line 9, in <module>
    root.text += u'\u0002'
  File "lxml.etree.pyx", line 953, in lxml.etree._Element.text.__set__ (src/lxml/lxml.etree.c:44956)
  File "apihelpers.pxi", line 677, in lxml.etree._setNodeText (src/lxml/lxml.etree.c:20273)
  File "apihelpers.pxi", line 1395, in lxml.etree._utf8 (src/lxml/lxml.etree.c:26485)
ValueError: All strings must be XML compatible: Unicode or ASCII, no …
Run Code Online (Sandbox Code Playgroud)

python xml unicode lxml invalid-characters

9
推荐指数
1
解决办法
1104
查看次数

构建OCaml交叉编译器 - 配置部分

我需要构建一个OCaml交叉编译器.遗憾的是,它似乎不支持开箱即用,需要一些工作,旧版OCaml编译器所述.
我的第一个问题是:生成文件config/mh,config/shconfig/Makefile的好方法是什么 ?

ocaml makefile configure cross-compiling

3
推荐指数
1
解决办法
690
查看次数

PHP中的DOM:解码实体和设置nodeValue

我想使用PHP 标准库的DOM部分对PHP文档执行某些操作.正如其他人已经发现的那样,人们必须处理解码后的实体.为了说明困扰我的是什么,我举了一个简单的例子.

假设我们有以下代码

$doc = new DOMDocument();
$doc->loadXML(<XML data>);

$xpath = new DOMXPath($doc);
$node_list = $xpath->query(<some XPath>);

foreach($node_list as $node) {
    //do something
}
Run Code Online (Sandbox Code Playgroud)

如果循环中的代码是类似的

$attr = "<some string>";
$val = $node->getAttribute($attr);
//do something with $val
$node->setAttribute($attr, $val);
Run Code Online (Sandbox Code Playgroud)

它工作正常.但如果它更像

$text = $node->textContent;
//do something with $text
$node->nodeValue = $text;
Run Code Online (Sandbox Code Playgroud)

并且$text包含一些已解码的&,它不会被编码,即使根本没有做任何事情$text.

此刻,我申请的htmlspecialchars$text之前,我设置$node->nodeValue它.现在我想知道

  1. 如果这就足够了
  2. 如果没有,那就足够了,
  3. 如果有更优雅的解决方案,就像属性操作一样.

我必须处理的XML文档主要是feed,因此解决方案应该非常通用.


编辑

事实证明我的原始问题的范围是错误的,对不起.在这里,我提供了一个实际描述行为的例子.

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://feeds.bbci.co.uk/news/rss.xml?edition=uk");
curl_setopt($ch, …
Run Code Online (Sandbox Code Playgroud)

php encoding dom libxml2

3
推荐指数
1
解决办法
3404
查看次数