2010-11-18 10 views
1
For Each file In My.Computer.FileSystem.GetFiles(inputFolder) 
     doc = XDocument.Load(file) 
    Next 

をロードスキップすることができますこれは、それは明らかである最初の行に窒息だ「 『[』予期しないトークンで何とか、何とか、何とか」XDocument:!あなたが<DOCTYPE

でクラッシュ。.. ..

<!DOCTYPE RCWChapter PUBLIC "-//LSC//DTD RCW Chapter for Authoring//EN" [] > 

1番目はINVALID XMLですか?なぜそれが "["?

第2に、何とかXMLドキュメントを読み込むことはできますが、DOCTYPEはスキップできますか?ストリームとしてロードする必要がありますか? string.replace?

+1

をnullにXDocumentType.InternalSubsetプロパティを設定することで、DTDから内部サブセットを削除することができます。また、 '['と ']は内部サブセットを意味します。あなたが何かを宣言する必要がなければ、彼らは必要ではありません。 (DTDで許可されている宣言は内部のサブセットで許可されていますが、ここにエンティティ宣言があります) –

+0

大丈夫ですが、どうやってスキップしますか? – Robert4Real

+0

だからこそ私は答える代わりにコメントした。私はそれをスキップする方法を知らない。私はXDocumentを一度も使用していません。あなたは入力XMLのコントロールを持っていますか?その場合は、システム識別子を追加することができます。 –

答えて

0

これを試してみてください:あなたは、DOCTYPE宣言にはシステム識別子がないのでそれは窒息だ

XDocument document = ...; 
if (document.DocumentType != null) 
document.DocumentType.InternalSubset = null; 
関連する問題