関連するいくつかの質問がありましたが、どれもそれを動作させる方法がありません。VB.Netの名前空間を含むXMLを解析します。
私はこのような構造を持つXMLファイルを持っている:私は、私はタグから名前空間を削除する場合に必要なデータを取得することができます
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfAssessmentItemTimed xmlns:xsi="http://a.b.c/" xmlns:xsd="http://d.e.f" xmlns="http://g.h.i">
<AssessmentItemTimed>
<CustomerId>306</CustomerId>
<AssessmentId>1959060</AssessmentId>
<ExternalReference />
<License>0577HJK</License>
<ChassisNumber>VF1KT1RG646667276</ChassisNumber>
<CostTraditional>2771.16</CostTraditional>
<CostCommercial>2771.16</CostCommercial>
<Kilometers>90957</Kilometers>
<TimeOrdered>2017-02-13T16:31:00.48</TimeOrdered>
<TimeClosed>2017-02-17T17:09:43.14</TimeClosed>
</AssessmentItemTimed>
<AssessmentItemTimed>
<CustomerId>306</CustomerId>
<AssessmentId>1959061</AssessmentId>
<ExternalReference />
<License>0918HHM</License>
<ChassisNumber>VF1KT1RG646272649</ChassisNumber>
<CostTraditional>3293.33</CostTraditional>
<CostCommercial>3293.33</CostCommercial>
<Kilometers>158142</Kilometers>
<TimeOrdered>2017-02-13T16:31:01.73</TimeOrdered>
<TimeClosed>2017-02-16T21:05:38.98</TimeClosed>
</AssessmentItemTimed>
</ArrayOfAssessmentItemTimed>
を。これは私の現在のコードです:
Dim xmlnode As XmlDocument
Dim nodeList As XmlNodeList
Dim node As XmlNode
Dim nsmgr As XmlNamespaceManager
Try
xmlnode = New XmlDocument()
xmlnode.Load("file.xml")
nsmgr = New XmlNamespaceManager(xmlnode .NameTable)
nodeList = xmlnode.DocumentElement.SelectNodes("/sd:ArrayOfAssessmentItemTimed/sd:AssessmentItemTimed", nsmgr)
For Each xmlnode In nodeList
Dim plateNumber = xmlnode.SelectSingleNode("sd:License", nsmgr).InnerText
Dim chassisNumber = xmlnode.SelectSingleNode("sd:ChassisNumber", nsmgr).InnerText
Dim Kilometers = mlnode.SelectSingleNode("sd:Kilometers", nsmgr).InnerText
'test if works
MsgBox("License: " & plateNumber & vbCrLf _
& "Chassis: " & chassisNumber & vbCrLf _
& "Kms: " & Kilometers & vbCrLf & vbCrLf
)
Next
Catch errorVariable As Exception
'Error trapping
MsgBox(errorVariable.ToString())
End Try
xmlnsの値を除外する正しい方法はありますか?私は本当にXmlNamespaceManagerを理解していないので、私は肯定的な結果を得ることができません。
ありがとうございます。
それは魔法のように動作します!主な問題は、デフォルトの名前空間ではなく、間違ったURLを使用しようとしていたようです。このヒントをありがとう!私はそれに取り組むことができます:-) – smtdev