Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python lxml objectify-如何使用破折号创建元素_Python_Lxml - Fatal编程技术网

Python lxml objectify-如何使用破折号创建元素

Python lxml objectify-如何使用破折号创建元素,python,lxml,Python,Lxml,我需要使用lxml的objectify模块来创建一些带有破折号的xml元素。例如: <program-id>$Id: myFile.py 3519 2012-07-17 13:37:20Z $</program-id> <formatter-txt>basic format</formatter-txt> $Id:myFile.py 3519 2012-07-17 13:37:20Z$ 基本格式 我在网上找不到任何关于如何做这件事的参考资料,当

我需要使用lxml的objectify模块来创建一些带有破折号的xml元素。例如:

<program-id>$Id: myFile.py 3519 2012-07-17 13:37:20Z $</program-id>
<formatter-txt>basic format</formatter-txt>
$Id:myFile.py 3519 2012-07-17 13:37:20Z$
基本格式
我在网上找不到任何关于如何做这件事的参考资料,当我试图用Python做这件事时,这是一个语法错误。任何帮助都将不胜感激。

使用文档,因为我从未使用过objectify:

>>> from lxml import objectify
>>> doc = objectify.E.xml()
>>> doc.append(getattr(objectify.E,'program-id')("$Id: myFile.py 3519 2012-07-17 13:37:20Z $"))
>>> doc.append(getattr(objectify.E,'formatter-text')("basic format"))
>>> from lxml import etree
>>> print etree.tostring(doc,pretty_print=True)
<xml xmlns:py="http://codespeak.net/lxml/objectify/pytype" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <program-id py:pytype="str">$Id: myFile.py 3519 2012-07-17 13:37:20Z $</program-id>
  <formatter-text py:pytype="str">basic format</formatter-text>
</xml>
来自lxml导入objectify的
>
>>>doc=objectify.E.xml()
>>>doc.append(getattr(objectify.E,'program-id')(“$id:myFile.py 3519 2012-07-17 13:37:20Z$”)
>>>doc.append(getattr(objectify.E,'formatter-text')(“基本格式”))
>>>从lxml导入etree
>>>打印etree.tostring(doc,pretty\u print=True)
$Id:myFile.py 3519 2012-07-17 13:37:20Z$
基本格式

我知道这是不相关的,但您知道如何强制lxml为空元素输出“”而不是“”。@MikeDriscoll:我不确定lxml和xml是否可以。它们在内容上是等价的。如果您确实需要它,我想实现它的一种方法是在
下使用文本占位符或实体。例如,
|
,然后在将其呈现为字符串后将其从xml中剥离。哈克,这里有一个和你在评论中的空标签问题差不多的答案:我知道它们是一样的。遗憾的是,我生成的XML没有被第三方解析。相反,他们只是逐行阅读,不管出于什么原因,他们都不会修改脚本来接受没有特定结束标记的XML。谢谢你!