1

ノード「キー」が XML に存在するかどうかを確認しようとしています。存在しない場合は、代わりに「ノードなし」を割り当てる必要があります。以下は私が使用しているコードですが、エラーがスローされます

"オブジェクト参照がオブジェクト インスタンスに設定されていません。" nodevalue を Nothing に対してチェックする行で。XMLノードが存在するかどうかを確認するにはどうすればよいですか?

           Dim doc As New XmlDocument()
            doc.Load(strPath)
            'Create an XmlNamespaceManager for resolving namespaces.
            Dim nsmgr As New XmlNamespaceManager(doc.NameTable)
            nsmgr.AddNamespace("vvp", "http://schemas.abc.efg.IJ/zyx/")

            'Fetch nodes
            Dim MyRootNode As XmlNode = doc.SelectSingleNode("//vvp:provider", nsmgr)
            If (MyRootNode("Key").InnerXml <> Nothing) Then
               OrgCode = "No Node"
            End If
4

3 に答える 3

1

あなたはこのようにすることができます

Dim MyRootNode As XmlNode = doc.SelectSingleNode("//vvp:provider", nsmgr)
Dim keyNodelst As XmlNodeList=MyRootNode.SelectNodes(".//Key")
            If (!keyNodelst.Count>0) Then
               OrgCode = "No Node"
            End If

また

Dim MyRootNode As XmlNode = doc.SelectSingleNode("//vvp:provider", nsmgr)
    Dim keyNode As XmlNode=MyRootNode.SelectSingleNode(".//Key")
                If (keyNode==null) Then
                   OrgCode = "No Node"
                End If

xpath については、http://msdn.microsoft.com/en-us/library/ms256086.aspx を参照してください。

于 2012-08-06T10:54:27.360 に答える
0

SelectSingleNodeメソッドを再度使用して、「キー」ノードの検索を試みることができます。変数がNothingの場合は存在しません。

詳細については、次のリンクを参照してください http://social.msdn.microsoft.com/Forums/en/xmlandnetfx/thread/d7cbb3d3-6c1a-48fd-a2ab-40b9910fe453

于 2012-08-06T10:44:40.117 に答える