--- a/SEESenv/scripts/rst2docbook.py Tue Feb 23 19:43:04 2010 +0530
+++ b/SEESenv/scripts/rst2docbook.py Tue Feb 23 19:56:48 2010 +0530
@@ -6,6 +6,7 @@
sees documentation.
"""
import xml.etree.ElementTree as ET
+from lxml import etree as ET2
import os
import re
import subprocess
@@ -41,55 +42,88 @@
"""
-def convert2docbook(xml_string):
- """ convert to docbook from xml converted using rst2xml using regex replacements """
- xml_string=re.sub('<strong>','<emphasis role="strong">', xml_string)
- xml_string=re.sub('<literal_block xml:space="preserve">','<programlisting>',xml_string)
- xml_string=re.sub('</literal_block>','</programlisting>',xml_string)
- xml_string=re.sub('<paragraph>' ,'<para>',xml_string)
- xml_string=re.sub('</paragraph>' ,'</para>',xml_string)
- xml_string=re.sub('</strong>' ,'</emphasis>',xml_string)
- xml_string=re.sub('<bullet_list bullet="[-*+]">','<itemizedlist mark="*">',xml_string,)
- xml_string=re.sub('</bullet_list>','</itemizedlist>',xml_string)
- xml_string=re.sub('<list_item>','<listitem>',xml_string)
- xml_string=re.sub('</list_item>','</listitem>',xml_string)
- xml_string=re.sub('<enumerated_list enumtype="arabic" prefix="" suffix=".">', '<orderedlist numeration="arabic">',xml_string)
- xml_string=re.sub('</enumerated_list>', '</orderedlist>',xml_string)
- xml_string=re.sub('<block_quote>', '',xml_string)
- xml_string=re.sub('</block_quote>', '',xml_string)
- xml_string=re.sub('<definition_list>', '',xml_string)
- xml_string=re.sub('</definition_list>', '',xml_string)
- xml_string=re.sub('<entry>', '',xml_string)
- xml_string=re.sub('</entry>', '',xml_string)
- xml_string=re.sub('<row>', '',xml_string)
- xml_string=re.sub('</row>', '',xml_string)
- xml_string=re.sub('<tbody>', '',xml_string)
- xml_string=re.sub('</tbody>', '',xml_string)
- xml_string=re.sub('<table>', '',xml_string)
- xml_string=re.sub('</table>', '',xml_string)
- xml_string=re.sub('<thead>', '',xml_string)
- xml_string=re.sub('</thead>', '',xml_string)
-# xml_string=re.sub('<tgroup cols="[1-90]*"><colspec colwidth="[1-90]*"/><colspec colwidth="[1-90]*"/><colspec colwidth="[1-90]"/>', '',xml_string)
-# xml_string=re.sub('</tgroup', '',xml_string)
- chapter= ET.Element("chapter")
- article=ET.SubElement(chapter,"article")
- articleinfo=ET.SubElement(article,"articleinfo")
+def convert2docbook(name ,xml_string):
+ """changing tags to convert the xml to docbook"""
+
+ xml_string=re.sub('<strong>','<emphasis role="strong">', xml_string)
+ xml_string=re.sub('</strong>' ,'</emphasis>',xml_string)
+ xml_string=re.sub('<literal_block xml:space="preserve">','<literal_block xml:space="preserve">\n',xml_string)
+ xml_string=re.sub('<literal_block xml:space="preserve">','<programlisting>',xml_string)
+ xml_string=re.sub('</literal_block>','</programlisting>',xml_string)
+ xml_string=re.sub('<paragraph>' ,'<para>',xml_string)
+ xml_string=re.sub('</paragraph>' ,'</para>',xml_string)
+
+ xml_string=re.sub('<bullet_list bullet="[-*+]">','<itemizedlist mark="*">',xml_string,)
+ xml_string=re.sub('</bullet_list>','</itemizedlist>',xml_string)
+ xml_string=re.sub('<list_item>','<listitem>',xml_string)
+ xml_string=re.sub('</list_item>','</listitem>',xml_string)
+ xml_string=re.sub('<enumerated_list enumtype="arabic" prefix="." suffix=".">', '<orderedlist numeration="arabic">',xml_string)
+ xml_string=re.sub('<enumerated_list enumtype="arabic" prefix="" suffix=".">', '<orderedlist numeration="arabic">',xml_string)
+ xml_string=re.sub('</enumerated_list>', '</orderedlist>',xml_string)
+ xml_string=re.sub('<line_block>', '',xml_string)
+ xml_string=re.sub('</line_block>', '',xml_string)
+ xml_string=re.sub('<line>', '',xml_string)
+ xml_string=re.sub('</line>', '',xml_string)
+ xml_string=re.sub('<block_quote>', '',xml_string)
+ xml_string=re.sub('</block_quote>', '',xml_string)
+ xml_string=re.sub('<title_reference>', '',xml_string)
+ xml_string=re.sub('</title_reference>', '',xml_string)
+ xml_string=re.sub('<definition>', '',xml_string)
+ xml_string=re.sub('</definition>', '',xml_string)
+ xml_string=re.sub('<definition_list_item>', '',xml_string)
+ xml_string=re.sub('</definition_list_item>', '',xml_string)
+ xml_string=re.sub('<definition_list>', '',xml_string)
+ xml_string=re.sub('</definition_list>', '',xml_string)
+ xml_string=re.sub('<term>', '',xml_string)
+ xml_string=re.sub('</term>', '',xml_string)
+ xml_string=re.sub('<entry>', '',xml_string)
+ xml_string=re.sub('</entry>', '',xml_string)
+ xml_string=re.sub('<row>', '',xml_string)
+ xml_string=re.sub('</row>', '',xml_string)
+ xml_string=re.sub('<tbody>', '',xml_string)
+ xml_string=re.sub('</tbody>', '',xml_string)
+ xml_string=re.sub('<table>', '',xml_string)
+ xml_string=re.sub('</table>', '',xml_string)
+ xml_string=re.sub('<thead>', '',xml_string)
+ xml_string=re.sub('</thead>', '',xml_string)
+
+ xml_string=re.sub('<tgroup.*"/>', '',xml_string)
+ xml_string=re.sub('</tgroup>', '',xml_string)
+ chapter= ET.Element("chapter")
+ article=ET.SubElement(chapter,"article")
+ articleinfo=ET.SubElement(article,"articleinfo")
- try:
- tree = ET.fromstring(xml_string)
- except:
- print "xml_string problem"
- # print "fromstring"
- try:
- title= ET.SubElement(articleinfo,"title")
- title.text=tree.items()[1][1]
- except:
- pass
- article.insert(1,tree)
- xml_string=ET.tostring(chapter)
- xml_string=re.sub('<document [A-Za-z=/_."]*>' ,'',xml_string)
- xml_string=re.sub('</document>' ,'',xml_string)
- return xml_string
+ try:
+
+# print name
+ tree = ET.fromstring(xml_string)
+ except:
+ pass
+ #print name
+
+ # tree=ET2.fromstring(xml_string)
+ #print "xml_string problem"
+
+ # print "fromstring"
+ try:
+ title= ET.SubElement(articleinfo,"title")
+ title_element=tree.find('title')
+ title.text=title_element.text
+ article.insert(1,tree)
+ except:
+ if name not in ('ch12index.xml',):
+ title= ET.SubElement(articleinfo,"title")
+ section_element=tree.find('section')
+ title_element=section_element.find('title')
+ title.text=title_element.text
+ article.insert(1,tree)
+
+ xml_string=ET.tostring(chapter)
+ xml_string=xml_string.replace('\\',' ')
+ xml_string=re.sub('<document[-A-Za-z=/_" .0-9]*>' ,'',xml_string)
+ xml_string=re.sub('</document>' ,'',xml_string)
+# xml_string=re.sub('</section></section></section>' ,'</section></section>',xml_string)
+ return xml_string
@@ -97,17 +131,19 @@
if __name__=='__main__':
- for name in names:
- #print name
- xml_string=open(name,'r').read()
- #xml_string=open('ch9Using_Linux_Tools.xml','r').read()
- xml_string=convert2docbook(xml_string)
- docbook_file=name.split('.')[0]+'.docbook'
- f=open(docbook_file,'w')
- try:
- f.write(xml_string)
- except:
- pass
+
+ for name in names:
+
+ #print name
+ #xml_string=open(name,'r').read()
+ xml_string=open(name,'r').read()
+ xml_string=convert2docbook(name,xml_string)
+ docbook_file=name.split('.')[0]+'.docbook'
+ f=open(docbook_file,'w')
+ try:
+ f.write(xml_string)
+ except:
+ pass
@@ -121,3 +157,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+