2015-03-27 2 views
0

Я изо всех сил пытаюсь найти хороший пример того, как добавить XML-элемент в XML-документ, а также добавить данные (внутренний текст) к этому же элементу, но обертывание данных в тегах CDATA?Как добавить элемент xml и обернуть данные (внутренний текст) в тегах CDATA с помощью ElementTree

Вот пример того, что мне нужно. У меня есть следующий документ.

<data> 
    <config> 
      <documentation>This is my documentation<documentation> 
    </config> 
</data> 

Затем я хочу добавить элемент и CDATA в качестве внутреннего текста. Так что это будет выглядеть примерно так. Данные, которые мне нужно обернуть в тегах CDATA, могут быть довольно большими и должны быть прочитаны/отнесены к файлу.

<data> 
    <config> 
       <documentation>This is my documentation<documentation> 
       <script><![CDATA[ 
       function foo() 
       … 
       End 
       ]]> 
       </script> 
    </config> 
</data> 

то мне нужно, чтобы записать изменения, чтобы новый документ ... (так что у меня есть оригинал и дополнения.

+0

Возможный дубликат http://stackoverflow.com/questions/174890/how-to-output-cdata-using-elementtree и http://stackoverflow.com/questions/4474754/how-to-keep-comments- в то время разбора-XML, используя-питон-ElementTree? RQ = 1 –

ответ

0

Вы должны быть в состоянии использовать метод .CDATA() при условии по LXML.

http://lxml.de/api.html#cdata

Просто создайте подэлемент как обычный

some_var = root.find('config') 
another_var = etree.SubElement(some_var, 'script') 
another_var.text = etree.CDATA(another_var.text) 

Затем вы можете записать данные как обычно.