0

This XML file is CONSTANTLY updated every 3 seconds..

  <?xml version="1.0" ?> 
- <MotePacket>
- <ParsedDataElement>
  <Name>amtype</Name> 
  <ConvertedValue>11</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>nodeid</Name> 
  <ConvertedValue>5164</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>parent</Name> 
  <ConvertedValue>0</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>group</Name> 
  <ConvertedValue>125</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>socketid</Name> 
  <ConvertedValue>51</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>board_id</Name> 
  <ConvertedValue>133</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>packet_id</Name> 
  <ConvertedValue>134</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>voltage</Name> 
  <ConvertedValue>2892</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>humid</Name> 
  <ConvertedValue>60</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>humtemp</Name> 
  <ConvertedValue>30</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>calibW0</Name> 
  <ConvertedValue>46920</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>calibW1</Name> 
  <ConvertedValue>64792</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>calibW2</Name> 
  <ConvertedValue>44770</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>calibW3</Name> 
  <ConvertedValue>47493</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>prtemp</Name> 
  <ConvertedValue>30.203907</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>press</Name> 
  <ConvertedValue>998.057495</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>taosch0</Name> 
  <ConvertedValue>65535</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>taosch1</Name> 
  <ConvertedValue>0</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>accel_x</Name> 
  <ConvertedValue>120.000000</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>accel_y</Name> 
  <ConvertedValue>100.000000</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>taoch0</Name> 
  <ConvertedValue>1840.229980</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>calibB0</Name> 
  <ConvertedValue>72</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>calibB1</Name> 
  <ConvertedValue>183</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>calibB2</Name> 
  <ConvertedValue>24</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>calibB3</Name> 
  <ConvertedValue>253</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>calibB4</Name> 
  <ConvertedValue>226</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>calibB5</Name> 
  <ConvertedValue>174</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>calibB6</Name> 
  <ConvertedValue>133</ConvertedValue> 
  </ParsedDataElement>
- <ParsedDataElement>
  <Name>calibB7</Name> 
  <ConvertedValue>185</ConvertedValue> 
  </ParsedDataElement>
  </MotePacket>

I need a vb code that keeps on reading this file and extract the following data.. Is it possible? How can i do it?

I need this field only..

  • NodeID
  • humid
  • humtemp
  • accel_x
  • accel_y

If value of each field exceed a certain reading, do (sendsms) I've that sensms function already..

Thanks for helping..

2 Answers 2

1

Eric gave a good solution for detecting file changes, and another method not mentioned in reading the XML (in the linked question) is:

    Dim ds As New DataSet
    ds.ReadXml("filename.xml")

    For Each row As DataRow In ds.Tables("ParsedDataElement").Rows
        Dim name As String = row("Name")
        If (name = "NodeID") Then
            ' Test row("ConvertedValue")
        ElseIf (name = "humid") Then
            ' Test row("ConvertedValue")
        End If
    Next

Avoid this method if the XML file is large, like in the MB range. Otherwise it's a quick and easy way to extract XML data.

Sign up to request clarification or add additional context in comments.

Comments

0

I would use a File Watcher to receive a notification that the file has been updated and then process it based on this SO question.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.