여러 텍스트 노드를 편집하는 데 필요한 여러 개의 XML 파일 (60+)이 있습니다. Java, JavaScript, Python, JQuery, PHP, HTML에 익숙합니다.
이 작업을 어떤 언어로 완료 할 수 있습니까?
이것은 현재 샘플 XML 문서에 대한 것입니다.
<?xml version="1.0" encoding="utf-8"?><bookstore>
<book category="cooking">
<title lang="en">Chinese</title>
<author>chinese author</author>
<year>2015</year>
<price>fourth</price>
</book>
<book category="cooking">
<title lang="en">All American</title>
<author>American Author</author>
<year>2015</year>
<price>6.00</price>
</book>
</bookstore>
예를 들어 여러 요소의 작성자와 연도를 한 번에 변경하고 싶습니다!
이것은 한 번에 하나의 노드를 편집하는 파이썬 코드입니다. 한 번에 더 편집하려면 루프 나 무언가가 필요합니다.
from xml.dom.minidom import parse
import os
# create a backup of original file
new_file_name = 'dom.xml'
old_file_name = new_file_name + "~"
os.rename(new_file_name, old_file_name)
# change text value of element
doc = parse(old_file_name)
node = doc.getElementsByTagName('author')
node[0].firstChild.nodeValue = 'new author'
# persist changes to new file
xml_file = open(new_file_name, "w")
doc.writexml(xml_file, encoding="utf-8")
xml_file.close()
어떤 도움이라도 대단히 감사하겠습니다. 초보 프로그래머가 여기 있습니다!
감사합니다! :디
함수 생성 :
def create_backup(new_file_name):
""" create a backup of original file """
old_file_name = new_file_name + "~"
os.rename(new_file_name, old_file_name)
return old_file_name
def change_author(doc, new_author)
""" change text value of 'author' """
node = doc.getElementsByTagName('author')
node[0].firstChild.nodeValue = new_author
def save_changes(new_file_name, doc):
""" persist changes to new file """
xml_file = open(new_file_name, "w")
doc.writexml(xml_file, encoding="utf-8")
xml_file.close()
이제 루프를 쉽게 만들 수 있습니다.
file_names = ['dom.xml', ...]
for new_file_name in file_names:
old_file_name = create_backup(new_file_name)
doc = parse(old_file_name)
change_author(doc, 'new author')
save_changes(new_file_name, doc)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다