From 265b1f975e2494ab2d5ee106a8c14c157025cf63 Mon Sep 17 00:00:00 2001 From: kthoden Date: Mon, 25 Nov 2019 21:38:27 +0100 Subject: [PATCH] Table references are done with table/@id --- src/eoatex2imxml.py | 7 ++++--- src/imxml2django.py | 5 +---- src/imxml2epub.py | 5 +++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/eoatex2imxml.py b/src/eoatex2imxml.py index 6c72a13..a11fe4d 100755 --- a/src/eoatex2imxml.py +++ b/src/eoatex2imxml.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8; mode: python -*- -# Time-stamp: <2019-11-12 13:42:18 (kthoden)> +# Time-stamp: <2019-11-25 16:58:35 (kthoden)> """ Converts Latex files into a customized DocBook XML file. @@ -1030,16 +1030,17 @@ def number_tables( xmlChapters ): xmlTables = xmlChapter.findall(".//EOAtable") for xmlTable in xmlTables: xmlTableLabel = xmlTable.find(".//EOAtablelabel") + xml_table_id = xmlTable.xpath(".//table/@id")[0] strTableCaption = xmlTable.find(".//EOAtablecaption").text if strTableCaption == "nonumber": continue if not xmlTableLabel.text or xmlTableLabel.text == "": xmlTableLabel.text = "table" + str(intChapterNumber) + str(intTableNumber) - strUID = xmlTableLabel.text + strUID = xml_table_id logging.debug(f"XML table label: {strUID}") if xmlChapter.get("rend") != "nonumber": dictTables[strUID] = dictChapters[xmlChapter.get('id')] + "." + str(intTableNumber) - if xmlChapter.get("rend") == "nonumber": + elif xmlChapter.get("rend") == "nonumber": dictTables[strUID] = str(intTableNumber) intTableNumber += 1 logging.debug(f"Tables in this chapter: {dictTables}.") diff --git a/src/imxml2django.py b/src/imxml2django.py index edd9efb..6f2c8fe 100755 --- a/src/imxml2django.py +++ b/src/imxml2django.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8; mode: python -*- -# Time-stamp: <2019-11-24 17:44:14 (kthoden)> +# Time-stamp: <2019-11-25 15:35:22 (kthoden)> """ Create an XML file that can be inserted into the Django database @@ -460,9 +460,6 @@ def djangoParseObject(xmlElement, indent=False, listtype=None, listnumber=0, uid xmlResult.append(xmlElement.find(".//EOAtablecaption")) xmlResult.set("label", xmlElement.find(".//EOAtablelabel").text) table_id = xmlRawTable.get("id") - print(dictTables) - print(table_id) - print(dictTables[table_id]) xmlResult.set("number", dictTables[table_id]) xmlResult.set("id", xmlRawTable.get("id")) else: diff --git a/src/imxml2epub.py b/src/imxml2epub.py index 5a45d0f..deb5402 100755 --- a/src/imxml2epub.py +++ b/src/imxml2epub.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8; mode: python -*- -# Time-stamp: <2019-07-19 13:29:31 (kthoden)> +# Time-stamp: <2019-11-25 21:35:59 (kthoden)> """ Convert a customized DocBook XML file into a set of files that constitute the contents of an EPUB file. @@ -1474,10 +1474,11 @@ class FootnoteError(Exception): xmlTables = xmlChapter.findall(".//EOAtable") for xmlTable in xmlTables: xmlRawTable = xmlTable.find(".//table") + xml_table_id = xmlRawTable.get("id") strTableCaption = xmlTable.find(".//EOAtablecaption").text or "" # logging.info("Working on ", strTableCaption) if strTableCaption != "nonumber": - intTableNumber = dictTables[xmlTable.find(".//EOAtablelabel").text] + intTableNumber = dictTables[xml_table_id] xmlTableCaption = etree.Element("p") xmlTableCaption.text = str(intTableNumber) + " " + strTableCaption if xmlTable.find(".//EOAtablecaption").getchildren() is not None: