表示されたエラーメッセージ
名前空間マネージャまたは XsltContext が必要です。 このクエリには、プレフィックス、変数、またはユーザー定義の関数があります |
Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function. |
エラーが発生したプログラム
XmlNamespaceManager xmlnsManager; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load( "test.xml" ); xmlnsManager = new XmlNamespaceManager( xmlDoc.NameTable ); xmlnsManager.AddNamespace("ns", "http://mws.amazonservices.com/schema/Products/2011-10-01"); // ここで例外が発生する XmlNodeList offerNodeList = xmlDoc.SelectNodes( "/ns:Product/ns:Price" ); |
理由
xpathのクエリにネームスペースを付与しているが、NamespaceManagerが指定されていない
対処方法
SelectNodes()メソッド実行時に、XmlNamespaceManagerを引数で渡す
XmlNodeList offerNodeList = xmlDoc.SelectNodes( "/ns:Product/ns:Price" ); ↓ XmlNodeList offerNodeList = xmlDoc.SelectNodes( "/ns:Product/ns:Price", xmlnsManager ); |
関連記事
コメントを残す