在tex开头插入元素

2024-06-16 18:28:34 发布

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

我想在footnote.text之前插入reverse_html作为footnote的第一个元素,但失败了

我该怎么做

#!/usr/bin/env python3

from unittest import TestCase, TestProgram

class T(TestCase):
    def test(self):
        try:
            from lxml.etree import fromstring, tostring, XMLParser
        except ImportError:
            raise
        p_start = r'<p id="n1">'
        p_text = r'description'
        p_end = r'</p>'
        p = p_start + p_text + p_end
        a = r'<a href="#r1">^</a>'
        parser = XMLParser(remove_blank_text=True)
        footnote, reverse_href = (fromstring(xml, parser) for xml in (p, a))
        self._transform(footnote, reverse_href)
        expected = self._expected(p_start, p_text, p_end, a)
        gotten = tostring(footnote).strip().decode()
        self.assertEqual(expected, gotten)
    @staticmethod
    def _transform(footnote, reverse_href):
        footnote.text = ' ' + footnote.text
        footnote.insert(0, reverse_href)
    @staticmethod
    def _expected(p_start, p_text, p_end, a):
        return p_start + a + ' ' + p_text + p_end

if __name__ == r'__main__':
    TestProgram()

Tags: textfromimportselfdefstarttestcaseend
1条回答
网友
1楼 · 发布于 2024-06-16 18:28:34

"I wanted to insert reverse_html as the first element of footnote before footnote.text"

lxml.etree模型中,这意味着将footnote.text移动到reverse_htmltail

def _transform(footnote, reverse_href):
    reverse_href.tail = footnote.text
    footnote.text = ''
    footnote.insert(0, reverse_href)

结果:

>>> print etree.tostring(footnote).strip().decode()
<p id="n1"><a href="#r1">^</a>description</p>

相关问题 更多 >