NodeList.SelectSingleNode()を正しく機能させるのに問題があります。私のXMLは次のようになります。
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<inm:Results xmlns:inm="http://www.namespace.com/1.0">
<inm:Recordset setCount="18254">
<inm:Record setEntry="0">
<!-- snip -->
<inm:Image>fileName.jpg</inm:Image>
</inm:Record>
</inm:Recordset>
</inm:Results>
データは長い一連の<inm:Record>
エントリです。
ドキュメントを開いて、「inm:Record」に基づいてNodeListオブジェクトを作成します。これはうまくいきます。
XmlDocument xdoc = new XmlDocument();
xdoc.Load(openFileDialog1.FileName);
XmlNodeList xRecord = xdoc.GetElementsByTagName("inm:Record");
forループを使用してNodeListのループを開始します。特定のエントリを処理する前に、が設定されているかどうかを確認したいと思い<inm:Image>
ます。やるだけですごく簡単だと思いました
string strImage = xRecord[i].SelectSingleNode("inm:Image").InnerText;
私の考えは、「私が使用しているXRecordの場合、<inm:Image>
値を見つけに行きます...しかし、XmlNameSpaceManagerが必要であるという例外が発生するため、これは機能しません。したがって、それを設定しようとしましたが、できませんでした。構文を正しく取得します。
この場合、誰かが正しいXmlNameSpaceManager構文を使用する方法を教えてもらえますか?
今のところ、特定のxRecordのすべてのchildNodeをループし、ループしたらタグをチェックすることで、この問題を回避しました。<inm:Record>
最初にその値をチェックして、そのエントリをループする必要があるかどうかを確認したいと思います。