简体   繁体   中英

how to pretty_print xincluded file?

from lxml import etree
tree = etree.parse("part_000001.xml")
tree.xinclude()
string = etree.tostring(tree, pretty_print=True)

print(string)

I'm trying to pretty_print an XML file, my pretty_print option is turned on in the console (%%pprint to turn it on and off), but the terminal still doesn't insert an actual newline and instead "\n" is included in the string.

How to change it so that the newline is actually inserted?

U can try BeautifulSoup and using prettify() u can format your code as so:

from bs4 import BeautifulSoup

#you will FIRST need to read the xml file to pass into BS as shown below

content = []
with open("part_000001.xml", "r") as file:
    content = file.readlines()
    content = "".join(content)
    bs_content = bs(content, "lxml")

print(bs_content.prettify())

You can read more on this here .

the bytes must first be turned into a string:

string = etree.tostring(tree, pretty_print=True).decode("utf-8") #decode will convert bytes into string

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM