gpt4 book ai didi

python - 使用 Python 进行 HTML 编码

转载 作者:太空宇宙 更新时间:2023-11-03 16:46:38 25 4
gpt4 key购买 nike

我正在尝试使用 python 将 XML 文件转换为 HTML。我们有 .css 文件,其中包含输出格式的代码。我们一直在尝试运行以下代码:

def main():
infile = open("WTExcerpt.xml", "r", encoding="utf8")
headline=[]
text = infile.readline()
outfile = open("DemoWT.html", "w")
print("<html>\n<head>\n<title>Winter's Tale</title>\n",file=outfile)
print("<link rel='stylesheet' type='text/css' href='Shakespeare.css'>\n</head>\n<body>\n",file=outfile)
while text!="":
#print(text)
text = infile.readline()
text = text.replace("<w>", "")

if "<title>" in text and "</title>" in text:
print("<h1>",text,"</h1>\n",file=outfile)
elif text=="<head>":
while text!="</head>":
headline.append(text)
print("<h3>headline<\h3>\n",file=outfile)


main()

但是我们不知道如何让Python读取“文本”和“标题”作为我们的变量(每次循环执行时都会改变)而不是纯字符串。你有什么主意吗?非常感谢。

最佳答案

您似乎已经弄清楚如何输出变量以及一些字符串文字:

print("<h1>",text,"</h1>\n",file=outfile)

或者

print("<h1>{content}</h1>\n".format(content=text), file=outfile)

或者只是

print("<h1>" + text + "</h1>\n", file=outfile)

问题更多在于你的循环如何在标题中读取 - 你需要像标志变量( in_headline )这样的东西来跟踪我们当前是否正在解析 <head> 内的文本。是否标记。

def main():
with open("WTExcerpt.xml", "r", encoding="utf8") as infile, open("DemoWT.html", "w") as outfile:
print("<html>\n<head>\n<title>Winter's Tale</title>\n",file=outfile)
print("<link rel='stylesheet' type='text/css' href='Shakespeare.css'>\n</head>\n<body>\n",file=outfile)
in_headline = False
headline = ""
for line in infile:
text = line.replace("<w>", "")
if "<title>" in text and "</title>" in text:
print("<h1>",text,"</h1>\n",file=outfile)
elif text=="<head>":
in_headline = True
headline = ""
elif text == "</head>":
in_headline = False
print("<h3>", headline, "</h3>\n", file=outfile)
elif in_headline:
headline += text

但是,建议使用 xml parser而不是有效地编写自己的内容。这很快就会变成一项复杂的练习 - 例如,如果 <title> 则此代码将中断。 s 曾经被分割成多行,或者如果有其他东西与 <head> 在同一行上标签。

关于python - 使用 Python 进行 HTML 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36240739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com