2016-05-10 4 views
0

Ich verwende libxml2, um eine HTML-Seite zu analysieren/lesen. Der folgende Code wird verwendet, um den Wert eines Attributs zu lesen:Warum ersetzt xmlGetProp Zeichenentitätsverweise beim Lesen von Attributwerten?

char *value = (char*)xmlGetProp(node, attr->name); 

Aber xmlGetProp Ersatz Zeichenentitätsverweise, wenn es das Attribut Inhalt liest. Z.B.

<p onload="readId=&quot;blahString&quot;; myFun();"> Event handler in P HTML TAG</p> 

In dem obigen Fall gibt es die folgende Zeichenfolge als "onload" attribute value:

readId="blahString";myFun(); 

Die Zeichen Entitätsverweis wird in dem obigen Lesevorgang ersetzt. Gibt es eine Möglichkeit, den Attributwert unter Beibehaltung des ursprünglichen HTML-Inhalts mit libxml2 zu lesen?

Antwort

0

Was Sie „HTML-Codierung“ nennen, ist eigentlich Charakter Entitätsverweis genannt. Um Ihre Frage zu beantworten: Nein, die HTML parser von libxml2 hat keine Option zum Ausschalten der Substitution von Zeichenreferenzen.

Der XML-Parser hält standardmäßig Referenzen Zeichenentität, aber es kann nicht für typische HTML-Dokumente verwendet werden.

Verwandte Themen