使用LXML和Python修改独立指令

2024-04-20 03:13:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我修改了POM.xml文件我试着把修改写在同一个文件里,但是,在我的原始文件里POM.xml文件我有standalone='no'指令,但在修改后的文件中,我得到了standalone='yes'。在

声明POM.xml文件示例-

<?xml version='1.0' encoding='UTF-8' standalone='no'?>

我的代码-

^{pr2}$

有人能指出问题出在哪里吗?在


Tags: 文件no代码声明示例version指令xml
2条回答

这似乎是一个被抛弃的问题,所以我把答案留给像我这样的未来人。在

Standalone是一个布尔值(True/False),意思是Standalone='no'==Standalone='yes'。 http://lxml.de/api/lxml.etree.DocInfo-class.html

问题:

et.write("C:\Temp\python workspace\pom1.xml",pretty_print=True,
xml_declaration = True , encoding="UTF-8",standalone="no")

解决方案:

^{pr2}$

尝试如下-

from lxml import etree


data = """            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptors>
                        <descriptor>src/assembly/dist-binary.xml</descriptor>
                    </descriptors>
                    <finalName>standalone-sample</finalName>
                    <standalone>yes</standalone>
                    <appendAssemblyId>false</appendAssemblyId>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id><!  this is used for inheritance merges  >
                        <phase>package</phase><!  append to the packaging phase.  >
                        <goals>
                            <goal>attached</goal><!  goals == mojos  >
                        </goals>
                    </execution>
                </executions>
            </plugin>"""

tree = etree.fromstring(data)

for mytag in tree.xpath("//standalone"):
    mytag.text = "no"
print etree.tostring(tree, pretty_print=True)

相关问题 更多 >