2017-10-10 120 views
1

我在用lxml重建一個TEI-XML文件。用lxml編寫xml:id屬性

我的文件的開頭是這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-model href="https://www.ssrq-sds-fds.ch/tei/TEI_Schema_SSRQ.rng" 
      type="application/xml" 
      schematypens="http://relaxng.org/ns/structure/1.0"?> 
<?xml-model href="https://www.ssrq-sds-fds.ch/tei/TEI_Schema_SSRQ.rng" 
      type="application/xml" 
      schematypens="http://purl.oclc.org/dsdl/schematron"?> 
<?xml-stylesheet type="text/css" 
       href="https://www.ssrq-sds-fds.ch/tei/Textkritik_Version_tei-ssrq.css"?> 

<TEI xmlns:xi="http://www.w3.org/2001/XInclude" 
    xmlns="http://www.tei-c.org/ns/1.0" n="" 
    xml:id="[To be generated]" <!-- e.g. StAAG_U-17_0007a --> > 

前四行不應該太大的關係在我看來,但我列入他們的完整性。我的問題始於TEI-Element。 所以我的代碼複製,這看起來是這樣的:

NSMAP = {"xml":"http://www.tei-c.org/ns/1.0", 
     "xi":"http://www.w3.org/2001/XInclude"} 
root = et.Element('TEI', n="", nsmap=NSMAP) 
root.attrib["id"] = xml_id 
root.attrib["xmlns"] = "http://www.tei-c.org/ns/1.0" 

絃樂xml_id在之前的一些點被分配並不要緊,我的問題。所以我的代碼返回我這一行:

<TEI xmlns:xi="http://www.w3.org/2001/XInclude" 
    n="" 
    id="StAAG_U-17_0006" 
    xmlns="http://www.tei-c.org/ns/1.0"> 

所以這是唯一缺少的就是這種xml:id屬性。我發現這個規範頁面:https://www.w3.org/TR/xml-id/,我知道它在FAQ的lxml中被支持。

Btw,root.attrib["xml:id"]不起作用,因爲它不是一個可行的屬性名稱。

那麼,有誰知道我可以如何將我的id分配給elemnt的xml:id屬性?

回答