【发布时间】:2011-09-06 03:21:02
【问题描述】:
我正在使用ElementTree 加载一系列 XML 文件并解析它们。在解析文件时,我从中获取了一些数据(标题和一段文本)。然后我需要获取一些存储在 XML 中的文件名。它们包含在一个名为 ContentItem 的元素中。
我的代码看起来有点像这样:
for item in dirlist:
newsML = ET.parse(item)
NewsLines = newsML.getroot()
HeadLine = NewsLines.getiterator("HeadLine")
result.append(HeadLine)
p = NewsLines.getiterator("p")
result.append(p)
ci = NewsLines.getiterator("ContentItem")
for i in ci:
result.append(i.attrib)
现在,如果只有一种类型的文件,这会很好,但它包含 3 种类型(jpg、flv 和 mp4)。因此,当我在视图中遍历它们时,它会将它们吐出,但是如果我只想要那个 flv,我该如何抓住呢?还是只是mp4?它们也不总是以相同的顺序出现在列表中。
有没有办法说它是否以 .mp4 结尾然后执行此操作,或者是否有办法在模板中执行此操作?
如果我尝试这样做;
url = i.attrib
if url.get("Href", () ).endswith('jpg'):
result.append(i.attrib)
我得到一个错误元组对象没有属性结尾。为什么这是一个元组?我还以为是字典?
【问题讨论】:
-
.endswith()(docs.python.org/library/stdtypes.html#str.endswith) 或.splitext()(docs.python.org/library/os.path.html#os.path.splitext) 怎么样? -
第1步:搜索所有其他有相同文件名匹配问题的人。 stackoverflow.com/search?q=%5Bpython%5D+filename+match 第 2 步:选择一个类似的问题。 stackoverflow.com/questions/296173/…。第 3 步:阅读其他人的做法。
-
这和我想做的不一样。我只想匹配元素属性中的一些文本。
标签: python django elementtree