- PR -

C# XmlTextReaderの取得文字列について

1
投稿者投稿内容
Pos
会議室デビュー日: 2006/04/26
投稿数: 3
投稿日時: 2006-04-26 17:25
はじめまして。

C#ついてお聞きしたいのです。

XmlTextReaderのReadString()でデータを取得しているのですが、
http://www.iikkdd.co?dasasad
などの文字列をxmlから取り込みできません。

取り込み後の、データの中身を調べてみると、?以降の文字列が取り込み出来ていなく、catchエラーとなります。

解決策を教えてくださいませ。よろしくお願いします。


[ソース](一部抜粋)

XmlTextReader reader = new XmlTextReader(Path);
xmlPlan xp = null;
try
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.LocalName.Equals("Element"))
{
xp = new xmlPlan();
}
else if (reader.LocalName.Equals("URL"))
{
string url = reader.ReadString(); <--- ここでエラーになる。
}
:
:
:
:


}
}catch{

}

:
:
:
:


■ xml (一部抜粋)
<Element>
<URL>http://www.iikkdd.co?dasasad</URL>
</Element>
以上よろしくお願いします。
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2006-04-26 17:35

なんらかの例外が投げられているのですか?
であれば例外メッセージはどうなっているのですか?
ちょっと試した限りこの部分だけなら問題ないようですが。
Pos
会議室デビュー日: 2006/04/26
投稿数: 3
投稿日時: 2006-04-26 17:48
すみません。
?の部分は&の間違いです。

大変申し訳ございません。


ちなみにcatch文のエラー内容は、
"解析に失敗しました。"
とのことです。
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2006-04-26 18:13
そりゃ & じゃあそうなるでしょうね。
& は XML 中においては &amp; などとして実体参照(または文字参照)で書かなければなりません。
そうでない XML は整形式の XML ではないので XmlReader では読めません。


[ メッセージ編集済み 編集者: Hongliang 編集日時 2006-04-26 18:13 ]
Pos
会議室デビュー日: 2006/04/26
投稿数: 3
投稿日時: 2006-04-27 08:57
ありがとうございました。
XMLの仕様も知らずお手数をおかけしました。

解決方法を他に考えます。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-27 10:05
すぐにでも、実体参照について調べてください... (;-;)

今後 XML に限らず HTML など、マークアップ言語をおやりになる場合は、
インターネット上にある検証ページ (Validator) で検証されることを強くお勧めします。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)