• Commenting and uncommenting XML via Python


    转载:

    http://stackoverflow.com/questions/8764017/commenting-and-uncommenting-xml-via-python

     1 from xml.dom import minidom
     2 
     3 xml = """
     4 <target depends="create-build-dir" name="build-Folio">
     5    <property name="project.name" value="Folio"/>
     6    <ant antfile="build.xml" dir="Folio/FolioUI" inheritall="false" target="package"/>
     7    <ant antfile="build.xml" dir="Folio/Folio" inheritall="false" target="package"/>
     8 </target>
     9 """
    10 
    11 def comment_node(node):
    12     comment = node.ownerDocument.createComment(node.toxml())
    13     node.parentNode.replaceChild(comment, node)
    14     return comment
    15 
    16 def uncomment_node(comment):
    17     node = minidom.parseString(comment.data).firstChild
    18     comment.parentNode.replaceChild(node, comment)
    19     return node
    20 
    21 doc = minidom.parseString(xml).documentElement
    22 
    23 comment_node(doc.getElementsByTagName('ant')[-1])
    24 
    25 xml = doc.toxml()
    26 
    27 print 'comment_node():
    '
    28 print xml
    29 print
    30 
    31 doc = minidom.parseString(xml).documentElement
    32 
    33 comment = doc.lastChild.previousSibling
    34 
    35 print 're-parsed comment:
    '
    36 print comment.toxml()
    37 print
    38 
    39 uncomment_node(comment)
    40 
    41 print 'uncomment_node():
    '
    42 print doc.toxml()
    43 print


    Output:

    
    
    comment_node():<target depends="create-build-dir" name="build-Folio"><property name="project.name" value="Folio"/><ant antfile="build.xml" dir="Folio/FolioUI" inheritall="false" target="package"/><!--<ant antfile="build.xml" dir="Folio/Folio" inheritall="false" target="package"/>--></target>
    
    re-parsed comment:<!--<ant antfile="build.xml" dir="Folio/Folio" inheritall="false" target="package"/>-->
    
    uncomment_node():<target depends="create-build-dir" name="build-Folio"><property name="project.name" value="Folio"/><ant antfile="build.xml" dir="Folio/FolioUI" inheritall="false" target="package"/><ant antfile="build.xml" dir="Folio/Folio" inheritall="false" target="package"/></target>
     
  • 相关阅读:
    代码整洁之道
    PHP并发IO编程之路
    U盘启动盘的制作--用U盘硬装Windows系统、或是重装Windows系统
    Navicat for MySQL11--使用经验
    Eclipse字体颜色的设置方法
    5.5树和森林
    5.2二叉树
    3.3队列
    3.1栈
    2.3线性表的链式存储结构
  • 原文地址:https://www.cnblogs.com/lpthread/p/3460136.html
Copyright © 2020-2023  润新知