J'ai cette entrée XML:Comment puis-je obtenir l'analyseur Open XML DOM pour analyser un nœud ntEntityRef?
<?xml version="1.0" encoding="utf-8"?>
<string>
<N/A>
</string>
Voici un exemple de code court pour illustrer le problème:
uses
xmldom, oxmldom, XMLDoc, XMLIntf;
procedure TForm1.Test;
var
Document : IXMLDocument;
StringNode : IXMLNode;
LessThanNode : IXMLNode;
begin
DefaultDOMVendor := 'Open XML';
Document := LoadXMLData(Memo1.Lines.Text);
StringNode := Document.DocumentElement;
LessThanNode := StringNode.ChildNodes.First;
ShowMessage(LessThanNode.Text); // Displays '' (an emtpy string)
ShowMessage(LessThanNode.XML); // Displays '<'
ShowMessage(StringNode.Text); // Causes an EXMLDocError, because the string node contains more than just a single node with NodeType = ntText
end;
Comment puis-je obtenir l'analyseur Open XML
pour transformer les <
, >
et entités XML similaires à leur vrai texte (comme <
et >
)?
Je pourrais écrire une solution de contournement pour les entités prédéfinies dans la spécification XML: http://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent
Cela ne va pas aider avec l'entité nœuds supplémentaires si ...
connexes: Why doesn't IXMLNode.IsTextElement return True for CDATA elements?
Avez-vous essayé de valider un document en utilisant OpenXML? – Pol
@Pol - pourquoi voudrait-il faire ça? –