제목이 혼란 스럽다면 유감입니다. 2 개의 XML 파일을 비교하는 Python 스크립트를 작성했습니다. 두 파일 모두에서 ID가 다른 파일의 ID와 동일한 데이터가 있습니다.두 개의 XML 파일을 비교하고 그 중 하나의 요소를 업데이트하십시오.
예.
소스 파일 :
<id>123456</id>
<data>blabla</data>
......some other data......
<id>abcde</id>
<data>gfkgjk</data>
......some more data..........
대상 파일 :
<id>123456</id>
<data> </data>
......some other data......
<id>ghijk</id>
<data>gfkgjk</data>
......some more data..........
위의 예제가 아닌 대상 파일에 또한 소스 파일에있는 모든 ID 년대에서 볼 수 있듯이. 또한 2 개의 데이터 그룹이 동일한 ID를 가지고 있더라도 하나는 "데이터"태그가 채워져 있고 다른 하나는 그렇지 않습니다.
내 프로그램은 소스 파일을보고 데이터 태그 사이의 ID와 텍스트를 추출합니다. 그런 다음 대상 파일을 조사하고 동일한 ID와 빈 데이터 태그 (위의 예와 같이)가있는 데이터가 있으면이 빈 태그에 소스 파일의 정보를 채 웁니다. ID와 데이터 정보를 제외하고 두 XML은 완전히 다르기 때문에 소스 파일을 보관할 수는 없습니다.
오른쪽, 데이터 태그 사이의 ID와 정보를 추출 할 수있었습니다. 이제 ID를 비교하고 빈 데이터 정보가 있으면이를 대체하는 함수를 작성하려고합니다. 그러나 파이썬과 함수에 익숙하지 않고 도움이 필요합니다. 여기 내 함수가 모습입니다 :
def replace_empty_data():
for x in xmlData_id_source:
if xmlData_id_source==xmlData_id_target:
target = re.sub(xmlData_2,xmlData,target)
return target
file_target.close()
아마 기능에서 누락로드됩니다있다, 그러나 나는 무엇을 모른다. 그것은 나에게 어떤 오류도주지 않고 단순히 작동하지 않습니다. x를 제외한 변수는 코드의 이전 부분에서 정의되었으므로 이것은 문제가되지 않습니다.
xmlData_id_source는 xmlData_id_target가 xmlData_2가 입력
감사 소스 파일의 데이터 정보를 대상 파일 XMLDATA에서 데이터 정보이다 대상 파일의 ID 인 소스 파일의 ID 그래서 멀리,하지만 난 여전히 프로그래밍에 대한 단서가없는 사람을 위해 쉽게 이해할 수있는 방법을 찾고 있습니다 ... 나는 파일을 구문 분석하기 위해 minidom을 사용했고 추가 라이브러리를 가져오고 설치하지 않고 그것을 사용하고 싶습니다.
나는 괜찮 았던 Minidom을 사용하고 있습니다. 남은 유일한 질문은 데이터를 추출한 후이 비교 함수를 작성하는 방법입니다. – Kaly