Python &引用;无效的默认值";使用lxml和ATTLIST标记
我试图用Python &引用;无效的默认值";使用lxml和ATTLIST标记,python,parsing,lxml,Python,Parsing,Lxml,我试图用lxml解析一个XML文件(由opdis提供);它在这一行失败: 它表示:类型的属性操作数:无效的默认值 问题来自标记末尾的“”。如果我用类似于“nothing”的东西填充它,它就可以正常工作lxml就是不喜欢空字符串 问题是我无法编辑XML,它必须由opdis动态生成,因此我必须找到一种方法使lxml忽略此错误 代码如下: xml = subprocess.Popen(["opdis", "-f", "xml", "-E", "/home/ubuntu/workspace/testb
lxml
解析一个XML文件(由opdis
提供);它在这一行失败:
它表示:类型的属性操作数:无效的默认值
问题来自标记末尾的“”
。如果我用类似于“nothing”
的东西填充它,它就可以正常工作lxml
就是不喜欢空字符串
问题是我无法编辑XML,它必须由opdis
动态生成,因此我必须找到一种方法使lxml
忽略此错误
代码如下:
xml = subprocess.Popen(["opdis", "-f", "xml", "-E", "/home/ubuntu/workspace/testbinaries/bin/acc"], stdout=subprocess.PIPE).stdout.read();
tree = etree.fromstring(xml); #FAIL!
你有什么线索吗?有问题的那一行
<!ATTLIST operand type (target|src|dest) "">
空字符串对应于DefaultDecl
,属性的默认值(而S
对应于空白)
应使用以下内容定义:
DefaultDecl ::= '#REQUIRED' | '#IMPLIED'
| (('#FIXED' S)? AttValue) [VC: Required Attribute]
[VC: Attribute Default Value Syntactically Correct]
[WFC: No < in Attribute Values]
[VC: Fixed Attribute Default]
[WFC: No External Entity References]
请发布代码并显示您正在使用/调用的
lxml
函数在这里,我通过手动启动opdis
获取了xml
DefaultDecl ::= '#REQUIRED' | '#IMPLIED'
| (('#FIXED' S)? AttValue) [VC: Required Attribute]
[VC: Attribute Default Value Syntactically Correct]
[WFC: No < in Attribute Values]
[VC: Fixed Attribute Default]
[WFC: No External Entity References]
xml = subprocess.Popen(["opdis", "-f", "xml", "-E", "/home/ubuntu/workspace/testbinaries/bin/acc"], stdout=subprocess.PIPE).stdout.read();
xml = xml.replace("\"\"","#REQUIRED")
tree = etree.fromstring(xml); #OK