- PR -

XMLの表記について

1
投稿者投稿内容
TK
会議室デビュー日: 2004/06/23
投稿数: 17
お住まい・勤務地: 大阪
投稿日時: 2004-06-28 15:18
いつもお世話になっています。
TKです。
以下のXML文書をlistBoxに表示させようとしましたが表示できませんでした。
<thesaurus xmlns="x-schema:tsSchema.xml">
<expansion>
<sub weight="0.9">IE5</sub>
</expansion>
</thesaurus>

「"x-schema:tsSchema.xml"」の部分を削除すると表示できるのですが。。。
どうすれば表示できるのでしょうか?
分かる方いらっしゃいましたらご教授ください。

XMLファイルを読み込んでいるコードです。
xmlDocument.Load(openFileDialog1.FileName);
XmlNode rootXmlNode = xmlDocument.DocumentElement;
XmlNodeList xmlNodeList = rootXmlNode.SelectNodes(".//expansion/sub");

[ メッセージ編集済み 編集者: TK 編集日時 2004-06-28 15:19 ]
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2004-06-28 15:35
とりあえずこんな感じ。
コード:
XmlNode rootXmlNode  = xmlDocument.DocumentElement;
XmlNamespaceManager nm = new XmlNamespaceManager(xmlDocument.NameTable);
nm.AddNamespace("nm",xmlDocument.DocumentElement.NamespaceURI);
XmlNodeList xmlNodeList  = rootXmlNode .SelectNodes(".//nm:expansion/nm:sub",nm);

TK
会議室デビュー日: 2004/06/23
投稿数: 17
お住まい・勤務地: 大阪
投稿日時: 2004-06-28 16:31
catsさんお返事ありがとうございます。
もう1つお聞きしたいことがあります。
教えていただいたコードを使用してみたのですが
クイックウォッチで見ていくと
foreach エラー : 識別子 'foreach' はスコープ外です
と表示されました。
これはどんな状態なのでしょうか?
初心者で分からないことが多くてすいません。。。


xmlDocument.Load(openFileDialog1.FileName);

XmlNode rootXmlNode = xmlDocument.DocumentElement;
XmlNamespaceManager nm = new XmlNamespaceManager(xmlDocument.NameTable);
nm.AddNamespace("nm",xmlDocument.DocumentElement.NamespaceURI);
XmlNodeList xmlNodeList = rootXmlNode .SelectNodes(".//nm:replacement/nm:pat",nm);

foreach(XmlNode node in xmlNodeList)
{
this.listBox1.Items.Add(node.InnerText);
}
platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2004-06-28 17:16

以下は .NET Framework SDKの XmlNodeListのヘルプより引用
public static void Main() {

XmlDocument doc = new XmlDocument();
doc.Load("2books.xml");

//Get and display all the book titles.
XmlElement root = doc.DocumentElement;
XmlNodeList elemList = root.GetElementsByTagName("title");
IEnumerator ienum = elemList.GetEnumerator();
while (ienum.MoveNext()) {
XmlNode title = (XmlNode) ienum.Current;
Console.WriteLine(title.InnerText);
}

}

というわけで GetEnumeratorを使用すればよいのではないでしょうか。
TK
会議室デビュー日: 2004/06/23
投稿数: 17
お住まい・勤務地: 大阪
投稿日時: 2004-06-28 17:44
platiniさん
catsさん
ありがとうございました。

無事表示できるようになりました。。
TK
会議室デビュー日: 2004/06/23
投稿数: 17
お住まい・勤務地: 大阪
投稿日時: 2004-06-28 18:29
TKです
platiniさん すいません
せっかく教えて頂いたのですが
コーディングを進めていくとやはりXPATHを使って
表示させていかないと無理なようなのです。。。。(__)

以下のコードを利用するのは難しいのでしょうか?
ご存知の方いらっしゃいましたらご教授ください
xmlDocument.Load(openFileDialog1.FileName);

XmlNode rootXmlNode = xmlDocument.DocumentElement;
XmlNamespaceManager nm = new XmlNamespaceManager(xmlDocument.NameTable);
nm.AddNamespace("nm",xmlDocument.DocumentElement.NamespaceURI);
XmlNodeList xmlNodeList = rootXmlNode .SelectNodes(".//nm:replacement/nm:pat",nm);

foreach(XmlNode node in xmlNodeList)
{
this.listBox1.Items.Add(node.InnerText);
}
1

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