在讀取XML時如何忽略DTD?
要讀取的XML
讀取的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 即可。
<?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 "">
]>




<!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 即可。
1
XmlTextReader reader = new XmlTextReader(sFileName);
2
reader.XmlResolver = null;
3
while (reader.Read())
4
{
5
if (reader.NodeType == XmlNodeType.Element)
6
{
7
Console.WriteLine(reader.Name + " -- " + reader.Value + " -- " + reader.AttributeCount);
8
}
9
}
10
reader.Close();
11
reader = null;
XmlTextReader reader = new XmlTextReader(sFileName);2
reader.XmlResolver = null;3
while (reader.Read())4
{5
if (reader.NodeType == XmlNodeType.Element)6
{7
Console.WriteLine(reader.Name + " -- " + reader.Value + " -- " + reader.AttributeCount);8
}9
}10
reader.Close();11
reader = null;

浙公网安备 33010602011771号