XML 파일 목록이 있는데이 파일 각각에 두 개의 값을 가져 와서 데이터 프레임에 대한 인덱스를 만들고 싶습니다. 저는 대략 1000 개의 파일을 가지고 있기 때문에 for 루프를 사용합니다. 그 파일은 데이터 프레임에 저장하기위한 몇 가지 기능을 계산하기를 원합니다.팬더에서 XML 구문 분석
<?xml version="1.0" encoding="utf-8"?>
<tag1>
<tag2>
<tag3>
<author>The author</author>
<title> The title </title>
</tag3>
</tag2>
</tag1>
그래서 내가 가진 다중 인덱스 [author,title]
와 dataframe를 만들 수 있습니다 : 예를 들어
는 첫 번째 파일은 다음과 같습니다
tree = etree.parse(file)
root = tree.getroot()
title = tree.xpath("/tag1/tag2/tag3/author")[0].text
author = tree.xpath("/tag1/tag2/tag3/title")[0].text
features = [Some Feature engineering]
features_names = [List of the feature names]
pd.DataFrame(features,columns = features_names,index = [[author],[title]])
내 문제이며, 그 구조와 파일의 수 (태그 수가 같음)가 항상 같으면 태그 이름이 한 파일에서 다른 파일로 변경 될 수 있습니다 (예 :
<?xml version="1.0" encoding="utf-8"?>
<tag_1>
<secondtag>
<tag3>
<author>The second author</author>
<title> The second title </title>
</tag3>
</secondtag>
</tag_1>
)
태그의 이름을 모르는 저자와 제목에 어떻게 액세스 할 수 있습니까? 단지 그 어디서든 검색 -
그들은 항상 제작하고 제목 태그 경우 을 찾을? 예 :'.xpath ('// author')'? –
나는 항상 '저자'와 제목'꼬리표'를 가지고 있지만, 길을 시도했을 때, 작동하지 않았다.'tree.xpath ('// author') 이후''목록 색인이 범위를 벗어났다. 빈 목록을 반환했습니다. 그럼에도 불구하고, 나는 유죄가 입증 된 파일이 첫 번째 태그 인''을 가진 첫 번째 파일임을 확인했습니다. 문제가 될 수 있습니까? –
ysearka
Ahhh .... 그래서 네임 스페이스를 포함하도록 xpath를 변경하고 싶을 것입니다. –