我在使用python的minidom时遇到了一些问题,并且想知道你们是否可以帮助我!
我正在尝试将一些xml数据从错误的格式转换为我们的系统将读取的格式。我一直在研究一种概念验证,除了这个最后的小问题,我想出了一切!
这是我到目前为止所拥有的。
while y < length:
tag = doc_root.getElementsByTagName("p")[y].toxml()
xmlData = tag.replace(' region="bottom"','')
z = z + 1
xmlData= xmlData.replace(' xml:id="p%d"'%z,'')
xmlData = xmlData.replace('<p','p')
xmlData = xmlData.replace('/p>','p')
print xmlData
#div.appendChild(doc_root.getElementsByTagName("p")[x])
print xmlData
addData = doc.createElement(xmlData)
div.appendChild(addData)
y = y+1
现在这很好用,除非打印成xml我得到这个
<p begin="00:00:02.470" end="00:00:05.388">Organizational Communication and<br/>Deaf Employees<p/>
当我需要这个时
<p begin="00:00:02.470" end="00:00:05.388">Organizational Communication and<br/>Deaf Employees</p>
我想我明白了问题是什么,我将这个孩子作为一个字符串追加,因此该元素会自动生成<>
和</>
,对吧?那么如何防止最后</>
发生?
编辑:mzjn要求提供xml数据的示例。
这是xml(删除敏感部分)
<tt xml:lang="MI" ***********>
<head>
<metadata>
<ttm:title>*********</ttm:title>
<ttm:agent type="person" xml:id="author_1">
<ttm:name type="full">No Author</ttm:name>
</ttm:agent>
</metadata>
<styling>
<style tts:color="white" tts:fontFamily="Arial" tts:fontSize="24" tts:fontStyle="normal" tts:fontWeight="bold" tts:textAlign="center" xml:id="s1"/>
</styling>
<layout>
<region tts:displayAlign="before" tts:extent="80% 80%" tts:origin="10% 10%" xml:id="top"/>
<region tts:displayAlign="center" tts:extent="80% 80%" tts:origin="10% 10%" xml:id="center"/>
<region tts:displayAlign="after" tts:extent="80% 80%" tts:origin="10% 10%" xml:id="bottom"/>
</layout>
</head>
<body>
<div style="s1" xml:id="d1" xml:lang="MI">
<p begin="00:00:02.470" end="00:00:05.388" region="bottom" xml:id="p1">Organizational Communication and<br/>Deaf Employees</p>
this continues with each <p> tag until we get to the </div> </body> and </tt>
我需要将其更改为:
<?xml version="1.0" ?>
<tt xmlns=****** xml:lang="en">
<body>
<div xml:lang="en" style="1">
<p begin="00:00:02.470" end="00:00:05.388">Organizational Communication and<br/>Deaf Employees</p>