0
我有一些使用libxml2的SAX2接口的代碼。我希望能夠將<類型實體看作實體引用而不是字符,但看起來無論我做什麼,libxml2都會將<
變成<,然後將其交給我的角色回調,而不是調用我的引用回調。如何獲取libxml2的SAX2接口讓我看到<等?
有關如何強制libxml2爲基本預定義實體調用引用回調的任何想法?
我有一些使用libxml2的SAX2接口的代碼。我希望能夠將<類型實體看作實體引用而不是字符,但看起來無論我做什麼,libxml2都會將<
變成<,然後將其交給我的角色回調,而不是調用我的引用回調。如何獲取libxml2的SAX2接口讓我看到<等?
有關如何強制libxml2爲基本預定義實體調用引用回調的任何想法?
你不能這樣做。 LibXML返回節點的字符串內容,這是一個文字<
。如果你想讓你的字符串包含<
那麼你的原始XML需要包含&lt;
。
如果你想進一步轉義(你應該只對另一個XML文檔輸出),可以嘗試調用一個像HTML::Entities這樣的模塊來完成這項工作。
但libxml2 SAX文檔聲明,您可以選擇通過您的引用回調來傳遞實體引用。看起來奇怪的是,它會對一些實體而不是其他人實現。 – Benno 2009-09-02 23:04:53
XML對待某些實體的方式與其他實體不同。該規範提到數字字符實體必須立即展開(http://www.xml.com/axml/target.html#sec-predefined-ent),但不明確提及預定義的實體;可能是一個壞分號的情況。另請參閱http://www.xml.com/axml/target.html#sec-entexpand – kdgregory 2009-09-04 12:11:00