Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.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 如果属性存在,则打印子描述_Python_Xml_Python 3.x_Xpath_Lxml - Fatal编程技术网

Python 如果属性存在,则打印子描述

Python 如果属性存在,则打印子描述,python,xml,python-3.x,xpath,lxml,Python,Xml,Python 3.x,Xpath,Lxml,我有一些xml文件的一部分(例如): 陈述 OCP7(康涅狄格州) ns=1;s=AGENT.OBJECTS.OCP.Data BaseVariableType ns=1;s=共青团 ns=1;s=Komunikation.Data.State.failure 0 登录 登录 ns=1;s=代理对象 折叠式 F01 F01 ns=1;s=代理对象 折叠式 1. 1. ns=1;s=AGENT.OBJECTS.F01 ns=1;s=ObjectTypes.PROJECT.Forder ns=1;

我有一些xml文件的一部分(例如):


陈述
OCP7(康涅狄格州)
ns=1;s=AGENT.OBJECTS.OCP.Data
BaseVariableType
ns=1;s=共青团
ns=1;s=Komunikation.Data.State.failure
0
登录
登录
ns=1;s=代理对象
折叠式
F01
F01
ns=1;s=代理对象
折叠式
1.
1.
ns=1;s=AGENT.OBJECTS.F01
ns=1;s=ObjectTypes.PROJECT.Forder
ns=1;s=ObjectTypes.PROJECT.Forder.Overview
ns=1;s=ObjectTypes.PROJECT.Forder.Info\u显示
ns=1;s=ObjectTypes.PROJECT.Forder.Version
ns=1;s=ObjectTypes.PROJECT.Forder.Info\u Display\u Mobile
资料
资料
ns=1;s=AGENT.OBJECTS.F01.1
折叠式
陈述
陈述
ns=1;s=AGENT.OBJECTS.F01.1.Data
BaseVariableType
ns=1;s=ObjectTypes.PROJECT.Forder.Data.State.RelMirrorInput
假的
假的
假的
假的
假的
假的
假的
假的
我想写脚本,如果孩子们有属性
HasNotifier
,而不是打印
OCP7.(CONN)
。 我编写了xpath,但它不起作用。问题是为什么不工作,或者我做错了什么

//*[namespace-uri() = 'http://foundation.org/UA/2011/03/NodeSet.xsd'][local-name() = 'Reference'][@ReferenceType = 'HasNotifier']/../../Description[@Locale="en"]
它不是复制品,没有人能帮助我(给出提示或解决方案)。
这就是为什么lxml可能有一些bug——问题是谁的lxml或realy lxml有一些bug。

代码对我来说运行良好,除了xml文件的第3行中缺少引号。我在Python2和Python3上测试了您的代码,没有出现错误。您是否打开了正确的xml文件?lxml的版本是什么?我已经用Python3.4.4和lxlm 3.6.4I测试了Python3.4.3和lxml 3.6.4,但也没有出现错误。您可以一步一步地测试xpath,以找到错误发生的位置。e、 g.
//首先引用[@ReferenceType=“HasNotifier”]
,然后
//引用[@ReferenceType=“HasNotifier”]/../
等等。如果我使用
//引用[@ReferenceType=“HasNotifier”]
我没有错误,结果只有emtpy数组
[]
。使用此
//Reference[@ReferenceType=“HasNotifier”]/../
我有一个错误:
lxml.etree.xpatheValeror:无效表达式
此路径在此网站上也不起作用:
http://www.freeformatter.com/xpath-tester.html