Auflösen eines intern deklarierten XML-Entitätsverweises mit NSXMLParser

Ich habe eine XML-Datei, die intern deklarierte Entitäten verwendet. Zum Beispiel:

<?xml version="1.0" encoding="UTF-8"?>

...

<!ENTITY my_symbol "my symbol value">

...

<my_element>
    <my_next_element>foo&my_symbol;bar</my_next_element>
</my_element>

...

Wie kann ich mithilfe der NSXMLParser-Klasse das Problem beheben?my_symbol Entitätsreferenz?

Aus dem Experimentieren derparser:foundInternalEntityDeclarationWithName:value: Delegate-Methode wird für die aufgerufenmy_symbol Entitätsdeklaration mit Wert"my symbol value". Dann, wenn diemy_next_element Element ist erreicht,NSXMLParser werde das anrufenparser:didStartElement:namespaceURI:qualifiedName:attributes: delegieren Methode.

Vorparser:didEndElement:namespaceURI:qualifiedName: ist angesagt</my_next_element>, dasparser:foundCharacters: Die delegate-Methode wird zweimal mit den folgenden Zeichenfolgen aufgerufen:

"foo""bar"

Dasmy_symbol Entitätsreferenz wird ignoriert. Was ist erforderlich, damit die Entitätsreferenz aufgelöst wird?

BEARBEITEN:

Entferne denENTITY Erklärung vonmy_symbol aus der DTD führt zu einemNSXMLParserUndeclaredEntityError. Dies deutet darauf hin, dass die Entitätsdeklaration vorhanden ist und dann in referenziert wird<my_next_element>Es wird bemerkt. Aus irgendeinem Grund wird es einfach nicht in die Zeichenfolge aufgelöst, die es darstellt.

Auch wenn&amp; Wird es in einem Element verwendet, wird es vom Parser korrekt aufgelöst"&" und dies wird als String übergeben, wenn dieparser:foundCharacters: Die Delegate-Methode wird aufgerufen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage