11.1.1

    1. <?xml version="1.0" encoding="US-ASCII" ?>
    2. <!DOCTYPE customer[<!ENTITY tc "TOP Customer"> ]>
    3. <customer id="123" status="archived">
    4. <firstName>jim</firstName>
    5. <lastName>Bo</lastName>
    6. <quote><![CDATA[C#'s operators include:<>&]]>]></quote>
    7. <notes>Jim Bo is a &tc;</notes>
    8. </customer>
    1. XmlReaderSettings settings = new XmlReaderSettings
    2. {
    3. IgnoreWhitespace = true ,
    4. DtdProcessing=DtdProcessing.Parse
    5. //IgnoreComments=true,
    6. //IgnoreProcessingInstructions=true
    7. };
    8. using (XmlReader reader = XmlReader.Create(str, settings))
    9. while (reader.Read())
    10. {
    11. Console.Write(reader.NodeType.ToString().PadRight(17, '-'));
    12. Console.Write('>'.ToString().PadRight(reader.Depth * 6));
    13. switch (reader.NodeType)
    14. {
    15. case XmlNodeType.Element:
    16. case XmlNodeType.EndElement:
    17. Console.WriteLine(reader.Name); break;
    18. case XmlNodeType.Text:
    19. case XmlNodeType.CDATA:
    20. case XmlNodeType.Comment:
    21. case XmlNodeType.XmlDeclaration:
    22. Console.WriteLine(reader.Value); break;
    23. case XmlNodeType.Document:
    24. Console.WriteLine(reader.Name+" - "+reader.Value);break;
    25. default:break;
    26. }
    27. //Console.WriteLine(reader.ReadElementContentAsString("customer", ""));
    28. }
    29. Console.ReadLine();