好WordPress的進口商自定義XML文件,所以這裏是我目前的狀況:寫作使用LXML
我的XML或LXML的知識不是很好嗎,因爲我很少使用的XML文件到現在。 所以請告訴我,如果我的方法中的某些東西真的很愚蠢。 ;-)
我想使用Wordpress導入器爲Wordpress安裝一個自定義XML文件。 默認格式可以在這裏看到:XML File
現在也有一些標籤看起來像這樣
<wp:author>
我不是百分之百的把握,但據我今天瞭解到,WP:一部分標籤是命名空間。
當我試圖用LXML創建這些標籤我這樣做
author = etree.Element("wp:author")
這造成了一個錯誤,因爲我不能寫WP:作者,但唯一作者。 我用谷歌,看着於LXML網站,以及與此想出了:
WP = ElementMaker(namespace="http://wordpress.org/export/1.2/",
"nsmap={'wp' : "http://wordpress.org/export/1.2/"})
author = WP("author")
輸出:
<wp:author xmlns:wp="http://wordpress.org/export/1.2/"/>
嗯,好。正如我今天所瞭解的,xmlns:wp屬於命名空間的東西。但是我不想讓xmlns:wp的東西出現,因爲它不在它們的XML文件中。我擡起頭,WordPress的本身如何出口他們的內容,他們這樣做就像this:
echo '<wp:author_id>' . $author->ID . '</wp:author_id>';
現在我的問題,是它更好地做同樣喜歡他們,或者我應該堅持LXML,只要有一種沒有xmlns:wp的東西的標籤?使用lxml創建XML文件似乎是更好的方法,因爲它似乎(通常)非常容易,並且更好閱讀。
我已經嘗試過objectify.deannotate,cleanup_namespace和類似的建議,但所有這些都不起作用。我希望你們中的一些人有一個答案,要麼使用lxml來解決我的問題,要麼說,更好地按照Wordpress人的方式來做!
如果我忽略了已經回答過的類似問題,我真的很抱歉,請告訴我。
謝謝 Vaelor
太好了,謝謝你這個作品很棒。 :-)我開始使用谷歌什麼用於xml生成和lxml上來,所以我不知何故只是跳過內置的XML模塊。 :( – Vaelor