I am using the following code to parse a XML file of mine:
Dim xml As String = "<?xml version=""1.0"" encoding=""Windows-1252""?>" & _
"<theref:theref-msg xmlns:csr=""http://www.xxxxx.com/Schema/csr"" xmlns:theref=""http://www.xxxxx.com/Schema/theref"">" & _
"<theref:header>" & _
"<theref:eid />" & _
"<theref:reference_id>429</theref:reference_id>" & _
"<theref:sr_type_code>US1</theref:sr_type_code>" & _
"<theref:event_type_code>REQUEST</theref:event_type_code>" & _
"<theref:eai_event_code>DSR</theref:eai_event_code>" & _
"<theref:source_code>WORKS</theref:source_code>" & _
"<theref:target_code>APP</theref:target_code>" & _
"<theref:status_code />" & _
"<theref:details />" & _
"</theref:header>" & _
"</theref:theref-msg>"
Dim document As XDocument = XDocument.Parse(xml)
Dim pupils = From pupil In document.Descendants("theref:theref-msg") _
Select New With _
{ _
.Name = pupil.Element("theref:reference_id").Value, _
.TagID = pupil.Element("theref:sr_type_code").Value _
}
For Each pupil In pupils
Debug.Print("{0}: {1}", pupil.Name, pupil.TagID)
Next
The problem being is that it doesn't seem to work at all. It crashes on the line:
Dim pupils = From pupil In document.Descendants("csreai:csreai-msg") _
Select New With _
{ _
.Name = pupil.Element("csreai:reference_id").Value, _
.TagID = pupil.Element("csreai:sr_type_code").Value _
}
ERROR is: A first chance exception of type 'System.Xml.XmlException' occurred in System.Xml.dll
A first chance exception of type 'System.Xml.XmlException' occurred in System.Xml.dll The ':' character, hexadecimal value 0x3A, cannot be included in a name. 5
UPDATED CODE:
Dim xml As String = "<?xml version=""1.0"" encoding=""Windows-1252""?>" & _
"<theref:theref-msg xmlns:csr=""http://www.xxxxx.com/Schema/csr"" xmlns:theref=""http://www.xxxxx.com/Schema/theref"">" & _
"<theref:header>" & _
"<theref:eid />" & _
"<theref:reference_id>429</theref:reference_id>" & _
"<theref:sr_type_code>US1</theref:sr_type_code>" & _
"<theref:event_type_code>REQUEST</theref:event_type_code>" & _
"<theref:eai_event_code>DSR</theref:eai_event_code>" & _
"<theref:source_code>WORKS</theref:source_code>" & _
"<theref:target_code>APP</theref:target_code>" & _
"<theref:status_code />" & _
"<theref:details />" & _
"</theref:header>" & _
"<theref:body>" & _
"<csr:document>" & _
"<csr:header>" & _
"<csr:system>CSR</csr:system>" & _
"<csr:doc_name>FULLSR</csr:doc_name>" & _
"<csr:version>3.1</csr:version>" & _
"<csr:dml_event>UPDATE</csr:dml_event>" & _
"</csr:header>" & _
"</csr:document></theref:body></theref:theref-msg>"
Dim xmlb = From getXMLData In document.<theref:theref-msg>.<theref:header>.<theref:body>.<csr:document>.<csr:header>
Newest UPDATE
What if i have this:
<csr:custom_attributes>
<csr:custom_attribute>
<csr:type_code>
<csr:value>data1</csr:value>
</csr:type_code>
<csr:group_code>
<csr:value>wide1</csr:value>
</csr:group_code>
</csr:custom_attribute>
<csr:custom_attribute>
<csr:type_code>
<csr:value>data2</csr:value>
</csr:type_code>
<csr:group_code>
<csr:value>wide2</csr:value>
</csr:group_code>
</csr:custom_attribute>
</csr:custom_attributes>
I can only seem to get the first set of data (data1, wide1) but not the second?
xmlDATA = (From getXMLData In document.<theref:csreai-msg>.<theref:body>.<csr:document>.<csr:service_request>.<csr:custom_attributes>.<csr:custom_attribute>).ToList()