Lxml.html के पेड़ में एक HTML तत्व कैसे डालें - पायथन, lxml, lxml.html

मैं python 3.3 और lxml 3.2.0 का उपयोग कर रहा हूं

मुसीबत: मेरे पास एक वैरिएबल में एक वेब पेज है webpageString = "<html><head></head><body>webpage content</body></html>" और मैं दो हेडर टैग के बीच एक सीएसएस लिंक टैग डालना चाहता हूं, ताकि मुझे मिल जाए webpageString = "<html><head><link rel="stylesheet" type="text/css"></head><body>webpage content</body></html>"

मैंने निम्नलिखित कोड लिखा है:

def addCssCode(self):
tree = html.fromstring(self.article)
headTag = tree.xpath("//head")
#htmlTag = tree.getroot()

if headTag is None:
pass    #insert the head tag first

cssLinkString = "<link rel="stylesheet" type="text/css" href=""+ self.cssLocation+"">"
headTag[0].insert(1, html.HtmlElement(cssLinkString))
print(cssLinkString)
self.article = html.tostring(tree).decode("utf-8")

जिसके परिणामस्वरूप सम्मिलित किया जाता है-

    <HtmlElement>&lt; link rel="stylesheet" type="text/css" href="cssCode.css" &gt;</HtmlElement>

मैंने निम्न पृष्ठ में भी समरूप समस्या के समाधान की कोशिश की, लेकिन यह भी "t" काम नहीं किया। एक अन्य तत्व के बाद अजगर एलएक्सएमएल का तत्व

इसे कैसे हल किया जा सकता है? धन्यवाद

उत्तर:

जवाब के लिए 0 № 1

उपयोग .insert/.append तरीका।

import lxml.html

def add_css_code(webpageString, linkString):
root = lxml.html.fromstring(webpageString)
link = lxml.html.fromstring(linkString).find(".//link")
head = root.find(".//head")
title = head.find("title")
if title == None:
where = 0
else:
where = head.index(title) + 1
head.insert(where, link)
return lxml.html.tostring(root)

webpageString1 = "<html><head><title>test</title></head><body>webpage content</body></html>"
webpageString2 = "<html><head></head><body>webpage content</body></html>"
linkString = "<link rel="stylesheet" type="text/css">"

print(add_css_code(webpageString1, linkString))
print(add_css_code(webpageString2, linkString))

संबंधित सवाल
सबसे लोकप्रिय