В моем коде в строке 5 есть проблема, в которой говорится, что & ldquo; Missing '()' вызывает конструктор & rdquo; и я не знаю, как отладить это

глядя на источник (Python 3.2, если это имеет значение), это жестко закодировано в функции _write_data (). вам нужно будет изменить метод writexml () TextNode - либо путем подклассификации, либо просто его редактирования, - чтобы он не вызывал этот метод, а вместо этого сделал что-то похожее на escape только & lt; и>.

, если вы создали подкласс вне пакета (вместо копирования и взлома пакета, чтобы создать свой собственный xmlminidom), тогда это выглядит с небольшим вниманием, вы можете заставить все работать. поэтому вы должны создать свой собственный (подкласс) TextNode, модифицированный как указано выше, а затем, чтобы добавить текст в DOM, вы бы добавили экземпляр вашего нового класса (или заменили существующие текстовые узлы экземплярами этого класса). вам нужно будет установить атрибут ownerDocument. возможно, самым простым было бы также подкласс Document и исправить метод createTextNode ().

, но я не вижу более простого способа делать то, что вы хотите. лучше было бы использовать лучшую реализацию dom.

ps я понятия не имею, требуется ли это поведение спецификацией xml или нет. обновление: быстрое сканирование http://www.w3.org/TR/2008/REC-xml-20081126/#syntax предполагает, что только & lt; и & amp; должен быть закодирован .

1
задан Nugget 18 January 2019 в 08:38
поделиться