Python XML BeautifulSoup获取子节点的文本

时间:2013-07-16 19:47:20

标签: python xml beautifulsoup

使用之前的项目,我从XML标记属性中删除了数据,但我无法弄清楚如何获取子XML节点的文本。程序从文本文件中提取id并将它们插入到一个url中,然后对其进行解析。 XML如下:

<Article>
    <Sometag Owner="Steve" Status="online">
        <ID Version="1">231119634</PMID>
        <DateCreated>
            <Year>2012</Year>
            <Month>10</Month>
            <Day>10</Day>
        </DateCreated>

我想从year

的子标记中获取month dayDateCreated文本

到目前为止,我有以下情况,没有运气

    link = "http://somelink.com/"+line.rstrip('\n')+"?id=xml&format=text"
    args = (curlLink + ' -L ' + link + ' -o c:\\temp.txt --proxy-ntlm -x http://myproxy:80 -k -U:') 
    sp = subprocess.Popen(args) #run curl
    sp.wait() #Wait for it to finish before proceeding
    xml_string = open(r'C:\temp.txt', 'r').read() #read in the temporary file
    os.remove(r'C:\temp.txt') # clean up
    soup = BeautifulSoup(xml_string)
    result = soup.find('DateCreated')
    if result is not None:
        date = result.children.get_text()
        g.write(date +"\n")

1 个答案:

答案 0 :(得分:2)

有几种不同的方法可以从数据中获取信息:

year = int(date.Year.text)
month = int(date.Month.text)
day = int(date.Day.text)

date.text以字符串形式提供文字内容。你应该使用什么取决于你真正需要什么。