2013-01-06 55 views
2

我有一個看起來像這樣的XML文件中設置一個限制:XmlException:將輸入的文件已經超過MaxCharactersFromEntities

<!DOCTYPE Root [ 
<!ELEMENT anEntity (#PCDATA)> 
<!ELEMENT 500SuchElementsHere (#PCData)> 
<!ENTITY file1 SYSTEM "file1.xml"> 
... 
<!ENTITY file25 SYSTEM "file25.xml"> 
]> 
<Root> 
    &file1; 
    &file2; 
    ... 
    &file25; 
</Root> 

我加載使用XmlDocument的XML文件這樣

XmlDocument doc = new XmlDocument(); 
doc.Load("filePath to the above xml file"); 

負載引發標題中提到的異常。我在Windows 7旗艦版上運行.NET 4.5,VS 2012 Desktop Express。任何幫助表示讚賞。由於

回答

2

您需要使用XmlReader與設置屬性MaxCharactersFromEntities設置爲0(或大量將爲您的方案工作):

 var doc = new XmlDocument(); 

     using (var stream = new MemoryStream(Encoding.Default.GetBytes(xml))) 
     { 
      var settings = new XmlReaderSettings(); 

      // The default is 0, but setting it here allows us to document exactly why we are taking this approach. 
      settings.MaxCharactersFromEntities = 0; 

      using (var reader = XmlReader.Create(stream, settings)) 
      { 
       doc.Load(reader); 
      } 
     } 
+0

是的,我來到了同樣的結論。無論如何,謝謝你的回答。這解決了這個問題。 – Shankar

相關問題