如何在python中访问xml属性
下面给出了我的XML文件示例,我想访问文本“面包也是一流的”和类别“食品”如何在python中访问xml属性,python,xml,Python,Xml,下面给出了我的XML文件示例,我想访问文本“面包也是一流的”和类别“食品” 这取决于XML格式的复杂程度。最简单的方法是直接访问路径 import xml.etree.ElementTree as ET tree = ET.parse('x.xml') root = tree.getroot() print(root.find('.//text').text) print(root.find('.//aspectCategory').attrib['category']) 但是,如果有类似
这取决于XML格式的复杂程度。最简单的方法是直接访问路径
import xml.etree.ElementTree as ET
tree = ET.parse('x.xml')
root = tree.getroot()
print(root.find('.//text').text)
print(root.find('.//aspectCategory').attrib['category'])
但是,如果有类似的标记,您可能希望使用更长的路径,如
//aspectCategories/aspectCategories
。以下是解决您问题的代码
import os
import xml.etree.ElementTree as ET
basedir = os.path.abspath(os.path.dirname(__file__))
filenamepath = os.path.join(basedir, 'Restaurants_Test_Gold.txt')
test_text_file = open(filenamepath, 'r')
file_contents = test_text_file.read()
tree = ET.fromstring(file_contents)
for sentence in list(tree):
sentence_items = list(sentence.iter())
# remove first element because it's the sentence element [<sentence>] itself
sentence_items = sentence_items[1:]
for item in sentence_items:
if item.tag == 'text':
print(item.text)
elif item.tag == 'aspectCategories':
category = item.find('aspectCategory')
print(category.attrib.get('category'))
test_text_file.close()
导入操作系统
将xml.etree.ElementTree作为ET导入
basedir=os.path.abspath(os.path.dirname(_文件__))
filenamepath=os.path.join(basedir'Restaurants\u Test\u Gold.txt')
test\u text\u file=open(filenamepath,'r')
file\u contents=test\u text\u file.read()
tree=ET.fromstring(文件内容)
对于列表(树)中的句子:
句子\项目=列表(句子.iter())
#删除第一个元素,因为它是句子元素[]本身
句子项目=句子项目[1:]
对于句子中的项目_项目:
如果item.tag==“text”:
打印(项目.文本)
elif item.tag==“aspectCategories”:
category=item.find('aspectCategory')
打印(category.attrib.get('category'))
测试文本文件。关闭()
希望能有帮助
import xml.etree.ElementTree as ET
tree = ET.parse('x.xml')
root = tree.getroot()
print(root.find('.//text').text)
print(root.find('.//aspectCategory').attrib['category'])
import os
import xml.etree.ElementTree as ET
basedir = os.path.abspath(os.path.dirname(__file__))
filenamepath = os.path.join(basedir, 'Restaurants_Test_Gold.txt')
test_text_file = open(filenamepath, 'r')
file_contents = test_text_file.read()
tree = ET.fromstring(file_contents)
for sentence in list(tree):
sentence_items = list(sentence.iter())
# remove first element because it's the sentence element [<sentence>] itself
sentence_items = sentence_items[1:]
for item in sentence_items:
if item.tag == 'text':
print(item.text)
elif item.tag == 'aspectCategories':
category = item.find('aspectCategory')
print(category.attrib.get('category'))
test_text_file.close()