私はxxx URlからxmlを読み取っていますが、ルート要素が見つからないためエラーが発生しています。
XML応答を読み取るための私のコードは次のとおりです。
XmlDocument doc = new XmlDocument();
doc.Load("URL from which i am reading xml");
XmlNodeList nodes = doc.GetElementsByTagName("Product");
XmlNode node = null;
foreach (XmlNode n in nodes)
{
}
また、xml応答は次のとおりです。
<All_Products>
<Product>
<ProductCode>GFT</ProductCode>
<ProductName>Gift Certificate</ProductName>
<ProductDescriptionShort>Give the perfect gift. </ProductDescriptionShort>
<ProductDescription>Give the perfect gift.</ProductDescription>
<ProductNameShort>Gift Certificate</ProductNameShort>
<FreeShippingItem>Y</FreeShippingItem>
<ProductPrice>55.0000</ProductPrice>
<TaxableProduct>Y</TaxableProduct>
</Product>
</All_Products>
どこがおかしいのか教えてください。
こんにちは、これは奇妙な方法ですが、一度試してみてください
XMLDocument.LoadXML(xmlstring)
を使用できます私はあなたのコードと同じXMLで、XML宣言を追加せずに試します
XmlDocument doc = new XmlDocument();
doc.Load(@"H:\WorkSpace\C#\TestDemos\TestDemos\XMLFile1.xml");
XmlNodeList nodes = doc.GetElementsByTagName("Product");
XmlNode node = null;
foreach (XmlNode n in nodes)
{
Console.WriteLine("HI");
}
他の誰かがGoogleからここに到着した場合に備えて、XDocument.Load(Stream)メソッドを使用しているときにこのエラーメッセージに噛まれました。
XDocument xDoc = XDocument.Load(xmlStream);
ストリームをロードしようとする前に、ストリームの位置が0(ゼロ)に設定されていることを確認してください。
if (xmlStream.Position > 0)
{
xmlStream.Position = 0;
}
XDocument xDoc = XDocument.Load(xmlStream);
XMLが次のようになっていることを確認してください。
<?xml version="1.0" encoding="utf-8"?>
<rootElement>
...
</rootElement>
また、空のXMLファイルは、同じルート要素が見つからないという例外を返します。各XMLファイルには、他のすべての要素を囲むルート要素/ノードが必要です。
XMLファイルをリモートの場所からロードする場合、 Fiddler のようなスニファーを使用して、ファイルが実際に正しくダウンロードされているかどうかを確認します。
コードを実行してファイルを解析するクイックコンソールアプリを作成しましたが、うまく機能します。
Configフォルダにあるtrees.configファイルを確認してください...時々(私は理由がわかりません)誰かが内部のコンテンツを削除するようにこのファイルが空になった...ローカルPCにこのファイルのバックアップを保管してくださいこのエラーが表示されます-サーバーファイルをローカルファイルに置き換えます。これは、このエラーが発生したときに行うことです。
サーバーの使用可能なスペースを確認してください。時々これが問題です。
幸運を。