2016-06-17 11 views
0

私はウェブサイトからXMLを解析しようとしている、と私はルートレベルでのエラー」データを取得していますが無効です。ライン1、位置ここで1ロードXML-スキップ最初の行

がウェブサイトであります出力:最初の行はエラーの原因となっているが、それは私が読んでいるとき、その行をスキップすることが可能であり、わずか数日の要素を取得する理由

<Forecast xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

<Days> 

<Day> 

<date>16/06/2016</date> 

...etc 

私は知らない私は、他の読みました?ここでも同じエラーがありますが、解決策のどれも私のために働いていませんでした。

私はこのようにxmlを読もうとしています:

XmlDocument doc1 = new XmlDocument(); 
doc1.Load(url); 
XmlElement root = doc1.DocumentElement; 
XmlNodeList nodes = root.SelectNodes("/Forecast/Days/Day"); 
foreach (XmlNode node in nodes) 
{ 
      string max = node["temp_max_f"].InnerText; 
      string min = node["temp_min_f"].InnerText; 
      string date = node["date"].InnerText; 
      Console.WriteLine("{0} {1} {2}", date, max, min); 

} 
+0

公開URLですか、確認できるように共有できますか?通常、XML文書はそのようなテキストで始まらず、XMLをレンダリングするときにその行を追加するブラウザーです。ブラウザの「ソースの表示」とは何ですか? –

+0

私のプライベートAPIキーが含まれているので、私はむしろURLを投稿したいと思います。あなたは正しいですが、私がソースを見ると、最初の行はありません。申し訳ありません。その後、改行なしなどを除いて、残りの部分が表示されます。 – issharp

答えて

2

スタイル情報を検索しようとしているときに、あなたが提供する最初の行は、通常はブラウザによって生成されます。 編集:これを変更しました。だから私はそれを越えて他の人を混乱させないように。

実際には、ファイルをダウンロードする際にプレーンXMLを見ています。 私の最初の意図はBOMです(hereであり、解答はhereでなければなりません)。

XMLデータの解析中に、パーサーはバイトオーダーマーク(BOM)を見つけてエラーをスローします。例のようにBOMを削除すると問題が解決されます。

+0

リンクした例では、XML文字列からBOMが削除されています。データをロードしようとするとエラーが発生するため、動作する文字列はありません。あなたはこのケースに対処する方法を知っていますか? – issharp

+0

ファイルを文字列にダウンロードしてから、そこからオプションを解析していますか? UTF-8とバイトオーダーマークは、ロード関数が単独で見つけるため、問題ではないと言ったいくつかの情報源があります。今、実際にテストすることはできません。私は後でこれについてもっと深く見ることができました。 –

+0

わかりません。結局のところ、これは1日に数回発生する自動呼び出しになるので、私はそれをダウンロードすることは可能だとは思っていませんが、問題を理解するまで調査する価値がありますか? – issharp

関連する問題