我试图从一个XML文档中解析出某些标记,但它正在注销一个AttributeError: '_ElementStringResult' object has no attribute 'text'
错误。在
以下是xml文档:
<?xml version='1.0' encoding='ASCII'?>
<Root>
<Data>
<FormType>Log</FormType>
<Submitted>2012-03-19 07:34:07</Submitted>
<ID>1234</ID>
<LAST>SJTK4</LAST>
<Latitude>36.7027777778</Latitude>
<Longitude>-108.046111111</Longitude>
<Speed>0.0</Speed>
</Data>
</Root>
这是我使用的代码
^{pr2}$
'//Root/Data/node()'
将返回所有子元素的列表,这些子元素以字符串的形式包含文本元素,这些元素不具有text
属性。如果你在Data = ...
后面加上一个印刷体,你会看到类似['\n ', <Element FormType at 0x10675fdc0>, '\n ', ...
的东西。在我会先做一个过滤器,比如:
那么我想下面这一行可以改写为:
^{pr2}$这将给元素标签和文本字典,我相信这是你想要的。在
如果您只想返回元素(与文本节点相反),那么查询
/Root/Data/*
,而不是查询//Root/Data/node()
。(另外,只使用一个前导/
而不是//
可以让引擎进行更便宜的搜索,而不需要在整个子树中寻找额外的Root
。在另外,你确定你真的想在你的内部循环中循环整个数据子元素列表,而不是只循环外部循环选择的单个数据元素的子元素吗?我认为您的逻辑已经被破坏了,尽管只有在
Root
下有一个以上的Data
元素的文件才是可见的。在相关问题 更多 >
编程相关推荐