XDocument と XElement を使用して XML を読み取ります。Visual Studio 2012 から Web サイトを実行している間、読み取りに問題はありません。公開後、「ルート要素が見つかりません」という例外が発生します。
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.Xml.XmlException: ルート要素がありません。
以下の XML を見つけてください
<CTReport>
<ReportHeader>
<UserID>1508ac07-0070-46b9-84f4-533b83cb3770</UserID>
</ReportHeader>
<ReportInfoToDisplay>
<Report PlaceHolder="7">
<Info Name="Average Mix report" TranslatedText="" ShowPrice="1" />
<ReportControls>
<ControlInfo Type="Date" Name="Date" TranslatedText="" Data="!" />
<ControlInfo Type="Lookup" Name="Scale operator" TranslatedText="" Data="" />
<ControlInfo Type="Lookup" Name="Display Jobs of" TranslatedText="" Data="Normal!Layaway!" />
<ControlInfo Type="Combo" Name="SortBy" TranslatedText="SortBy" Data="Sort by mixer + product group!Sort by product group" />
</ReportControls>
</Report>
<Report />
<Report PlaceHolder="8">
<Info Name="Mix report" TranslatedText="" ShowPrice="0" />
<ReportControls>
<ControlInfo Type="Date" Name="Date" TranslatedText="" Data="!" />
<ControlInfo Type="Lookup" Name="Scale operator" TranslatedText="" Data="" />
<ControlInfo Type="Combo" Name="SortBy" TranslatedText="SortBy" Data="Sort by mixer + product group!Sort by product group" />
</ReportControls>
</Report>
<Report PlaceHolder="9">
<Info Name="Scale report" TranslatedText="" ShowPrice="0" />
<ReportControls>
<ControlInfo Type="Date" Name="Date" TranslatedText="" Data="!" />
<ControlInfo Type="String" Name="Job reference" TranslatedText="" Data="" />
<ControlInfo Type="String" Name="Job ID" TranslatedText="" Data="" />
<ControlInfo Type="Lookup" Name="Scale operator" TranslatedText="" Data="" />
</ReportControls>
</Report>
</ReportInfoToDisplay>
</CTReport>
コード:
XDocument xml = XDocument.Parse(reportXML);
reportXML は文字列です。
XDocument は XML ファイルから作成されますが、例外はありません。