У меня есть несколько XML-файлов (60+), которые мне нужны для редактирования нескольких текстовых узлов (я думаю, это называется). Я знаком с Java, JavaScript, Python, JQuery, PHP, HTML.Редактирование нескольких XML-узлов в нескольких XML-файлах
На каком языке я могу это завершить?
Это то, что я тока есть для образца 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>
Так, например, я хочу, чтобы изменить автора и год нескольких элементов сразу!
Это мой код python, который будет редактировать один узел за раз. Мне нужен цикл или что-то, чтобы редактировать больше сразу.
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()
Любая помощь была бы принята с благодарностью. Начинающий программист!
СПАСИБО! : D
Вы хотите изменить автора, буквально, 'новый автор' в каждой книге в каждом файле? Или вы хотите изменить кого-то на «новый автор», а не на других? Или некоторые из «новых других» и некоторых других «другому новому автору»? –
«новый автор» - это просто место (очевидно). Мне нужны некоторые изменения, но не все. Однако знать оба пути было бы неплохо. Это все фиктивные данные. У меня гораздо больше файлов, на которые это действительно нужно применить. – Kevin
Если вы просто хотите использовать лучший инструмент для задания - как следует из вашего первого абзаца, а не для Python, я бы избегал помечать этот питон (точно так же отмечая «как мне сделать X из оболочки» с помощью awk и sed, потому что один думает, что один из этих инструментов может быть удобным, нахмурился). Аналогичным образом, если вы хотите повторно использовать стороннюю библиотеку вместо написания собственного анализатора, это не вопрос синтаксического анализа. –