В настоящее время я пытаюсь проанализировать данные с помощью VB.net, чтобы заполнить некоторые текстовые поля, выбрав по имени «eResponse.01», 02, 03 и т. Д., Однако расположение пространства имен/схемы в главном теге кажется отключите код.разбор данных xml с помощью vb.net
Dim xmlDoc As New XmlDocument()
xmlDoc.Load("C:\Users\james\Desktop\NEMSIS\EMS\xml\Test.xml")
Dim xmlns As New XmlNamespaceManager(xmlDoc.NameTable)
xmlns.AddNamespace("xsi", "http://www1w3.org/2001/XMLSchema-instance")
xmlns.AddNamespace("schemaLocation", "http://www.nemsis.org http://nemsis.org/media/nemsis_v3/release-3.4.0/XSDs/NEMSIS_XSDs/EMSDataSet_v3.xsd")
xmlns.AddNamespace("xmlns", "http://www.nemsis.org")
Dim nodes As XmlNodeList = xmlDoc.DocumentElement.SelectNodes("/EMSDataSet/Header/PatientCareReport/eResponse")
For Each node As XmlNode In nodes
TextEdit1.Text = node.SelectSingleNode("eResponse.03").InnerText
Next
прекрасно работает при использовании следующей
<EMSDataSet>
<Header>
<DemographicGroup>
<dAgency.01>0</dAgency.01>
<dAgency.02>00</dAgency.02>
<dAgency.04>49</dAgency.04></DemographicGroup>
<PatientCareReport>
<eRecord>
<eRecord.01>OpP</eRecord.01>
<eRecord.SoftwareApplicationGroup>
<eRecord.02>G</eRecord.02>
<eRecord.03>Q</eRecord.03>
<eRecord.04>P</eRecord.04></eRecord.SoftwareApplicationGroup></eRecord>
<eResponse>
<eResponse.AgencyGroup>
<eResponse.01>a</eResponse.01>
<eResponse.02>BL</eResponse.02></eResponse.AgencyGroup>
<eResponse.03>u33</eResponse.03>
однако это ничего не заполнять, если я включать пространство имен/Schema
<EMSDataSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nemsis.org http://nemsis.org/media/nemsis_v3/release-3.4.0/XSDs/NEMSIS_XSDs/EMSDataSet_v3.xsd" xmlns="http://www.nemsis.org">
<Header>
<DemographicGroup>
<dAgency.01>0</dAgency.01>
<dAgency.02>00</dAgency.02>
<dAgency.04>49</dAgency.04></DemographicGroup>
<PatientCareReport>
<eRecord>
<eRecord.01>OpP</eRecord.01>
<eRecord.SoftwareApplicationGroup>
<eRecord.02>G</eRecord.02>
<eRecord.03>Q</eRecord.03>
<eRecord.04>P</eRecord.04></eRecord.SoftwareApplicationGroup></eRecord>
<eResponse>
<eResponse.AgencyGroup>
<eResponse.01>a</eResponse.01>
<eResponse.02>BL</eResponse.02></eResponse.AgencyGroup>
<eResponse.03>u33</eResponse.03>
, что мне нужно сделать, чтобы получить мой код игнорировать дополнительные данные в открывающем теге - удаление этой информации не является опцией.
возможного дубликата [добавить пространство имен, используя XmlNamespaceManager в C#] (http://stackoverflow.com/questions/6275837/add-namespace-using-xmlnamespacemanager-in-c-sharp) – Tim
Вам нужно использовать 'XmlNamespaceManager' - пример связан в моем дублированном комментарии. – Tim
Я appologize Я скопировал старый код - я уже пробовал namespacemanager и либо не смог синтаксис, либо не понял его - отредактирован, чтобы показать, что было использовано –