プロが教える店舗&オフィスのセキュリティ対策術

VB.NETとXPATHを使用して、XML文書の指定した属性値を持つノードを取得したいのですが次のようなエラーが表示され、実行することができません。

「型 'System.NullReferenceException' のハンドルされていない例外が発生しました。追加情報: オブジェクト参照がオブジェクト インスタンスに設定されていません。」

以下のようなサンプルXMLで、属性 「prefix」が「m」値を持つ、「名前」の値「鈴木雨」を取得したいです。どうしたら取得できるのか教えてください。
また、「preix」の属性値を持たないノードである「名前」の値「佐藤晴子」に、「preix」の属性値「m」を付与することは出来るのでしょうか。宜しくお願い致します。

'サンプルVB.NET
Dim doc As XmlDocument = New XmlDocument()
doc.Load("C:\サンプル.xml")
Dim nsmgr1 As XmlNamespaceManager = New XmlNamespaceManager(doc.NameTable)
nsmgr1.AddNamespace("ns", "http://www.abc.co.jp/sample/info")
Dim writerNode1 As XmlNode = doc.SelectSingleNode("//ns:名前[@prefix='m']", nsmgr1)
Dim writerNameNode As XmlNode = writerNode1.SelectSingleNode("ns:名前", nsmgr1)

'サンプルXML
<?xml version='1.0' encoding="UTF-8" ?>
<書籍情報 xmlns="http://www.abc.co.jp/sample/info">>
<著者 id="writer201">
<名前>佐藤晴子</名前>
</著者>
<著者 id="writer302">
<名前 prefix="m">鈴木雨</名前>
</著者>
</書籍情報>

A 回答 (1件)

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!