Life

导航

在讀取XML時如何忽略DTD?

要讀取的XML
<?xml version="1.0" encoding="BIG5"?>
<!DOCTYPE xxx SYSTEM "xxxx.dtd" [ 
<!ENTITY xxx SYSTEM "xxxxx.tmp" NDATA txt
>
<!ENTITY xxx SYSTEM "xxxx.sw" NDATA sw>
<!NOTATION txt SYSTEM "">
<!NOTATION sw SYSTEM "">
]>


讀取的Code
XmlTextReader reader = new XmlTextReader(sFileName);
while (reader.Read())
{
    
if (reader.NodeType == XmlNodeType.Element)
    
{
        Console.WriteLine(reader.Name 
+ " -- " + reader.Value + " -- " + reader.AttributeCount);
    }

}

可是我手上並無xxxx.dtd,就會出現錯誤。
(System.IO.FileNotFoundException 未處理  Message="找不到檔案 'xxxx.dtd'。")

原來要設定reader 的 XmlResolver = null 即可。

 1XmlTextReader reader = new XmlTextReader(sFileName);
 2reader.XmlResolver = null;
 3while (reader.Read())
 4{
 5    if (reader.NodeType == XmlNodeType.Element)
 6    {
 7        Console.WriteLine(reader.Name + " -- " + reader.Value + " -- " + reader.AttributeCount);
 8    }

 9}

10reader.Close();
11reader = null;


posted on 2008-04-22 16:11  Amy001104  阅读(260)  评论(0)    收藏  举报