Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python实现XML模式到模式的转换_Python_Xml_Dictionary - Fatal编程技术网

用Python实现XML模式到模式的转换

用Python实现XML模式到模式的转换,python,xml,dictionary,Python,Xml,Dictionary,我是一个作家的书籍,我是新的Python。我的问题是战略性的。我将手稿写入带有专有标记的xml文件(大小约为1MB,行数5000-1000行): document.xml 章名 这是一个用斜体字写的句子 我经常想输出到目前为止我所写的内容,我正试图用Python创建一个完全自动化的工作流。Python应将我的XML转换为两种不同的XML方案: 1. HTML for epub (with creating IDs): <h1 id="title-of-chapter">Title

我是一个作家的书籍,我是新的Python。我的问题是战略性的。我将手稿写入带有专有标记的xml文件(大小约为1MB,行数5000-1000行):

document.xml
章名
这是一个用斜体字写的句子

我经常想输出到目前为止我所写的内容,我正试图用Python创建一个完全自动化的工作流。Python应将我的XML转换为两种不同的XML方案:

1. HTML for epub (with creating IDs):
<h1 id="title-of-chapter">Title of Chapter</h1>
<p>This is a sentence, with one word written in <i>italics</i></p>
1。epub的HTML(带有创建ID):
章名
这是一个用斜体字写的句子

然后另存为document.html

2. ODT:
<text:h text:style-name="HeadlineStyle1" text:outline-level="1">GetByName</text:h>
<text:p text:style-name="ParagraphStyle1">This is a sentence, with one word written in <text:span text:style-name="Italics">italics</text:span></text:p>
2。ODT:
GetByName
这是一个用斜体字写的句子
然后另存为content.xml

我不确定是否应该真正解析XML(原始XML)→ 字典→ 新XML)的所有。将原始文件作为纯文本处理,并让Python只转换标记,这样就变得更容易了,不是吗

另一方面,上述任务只是第一步。稍后,我想让Python创建一个目录,方法是收集所有标题并将其写入帮助文件toc.ncx,最后让Python将所有这些文件压缩到一个epub容器中


有很多关于xml的教程→ 但是很难找到关于第二步的东西→ 详细说明的xml。

在ElementTree中很容易重命名标记:

for oldTag in root.iter('oldtag'):
   oldTag.tag = 'newtag'

XSLT不能做到这一点。它不能转换XML,只能从中提取元素。

XML到XML的转换最好使用XSLT,而不是Python。我忘了提到:XSLT不能这样做。当你写手稿时,你如何标记它们?你如何用斜体字标出一个短语。或者,换句话说,你用什么软件来记录你的手稿?@user2240646:我忘了提到:XSLT不能这样做。这个未经证实的陈述几乎肯定是错误的,即使考虑到你还没有定义(可能自己也不理解)这是什么。第一稿是用Word编写的,然后我将其转移到Notepad++并用适当的标记进行清理。kjhughes:我在我的网站上做了很多XSLT,但这里我们处理的是文本文档xml,您无法预测下一个标签。但元素的顺序必须保持。此外,我还必须在Python中使用XSLT。对于初学者,您将如何告诉XSLT所有这些标记应该如何转换?如果确实如此,那么您必须给出一个示例,说明XSLT在纯文本xml文件的不可查看标记之间迭代,并通过保持元素顺序来替换它们。只需说出命令的名称。
for oldTag in root.iter('oldtag'):
   oldTag.tag = 'newtag'