使用python中的minidom编辑元素的END TAG?

时间:2014-09-10 17:34:20

标签: python xml xml-parsing minidom

我在使用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>

0 个答案:

没有答案