2011-11-23 75 views

回答

1

这可能不是最好的或最有效的解决方案,但在事实上,我没有收到任何其他的答案光线,这就是我想出了:

XmlTextReader reader = new XmlTextReader(stream); 
reader.EntityHandling = EntityHandling.ExpandCharEntities; 
XmlDocument doc = new XmlDocument(); 
doc.Load(reader); 

List<XmlEntityReference> entityRefs = new List<XmlEntityReference>(); 
RetrieveEntityRefs(doc.DocumentElement, doc, entityRefs); 

private void RetrieveEntityRefs(XmlNode parentNode, XmlDocument doc, List<XmlEntityReference> entityReferences) { 
    foreach (XmlNode node in parentNode.ChildNodes) 
    { 
     if (node.NodeType == XmlNodeType.EntityReference) { 
      XmlEntityReference entityRef = node as XmlEntityReference; 
      entityReferences.Add(entityRef); 
     } 
     else if (node.HasChildNodes) { 
      RetrieveEntityRefs(node, doc, entityReferences); 
     } 
    } 
}