Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

XML Parser

By: ChristophX86 on May 5th, 2012  |  syntax: AutoIt  |  size: 0.98 KB  |  views: 1,855  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. ; Function Name: XMLParseSimple
  2. ; Function Description: function to get the content of a xml-tag
  3. ; Function Author: ChristophX86
  4. Func XMLParseSimple($XML, $Tag, $Attribute='', $Parent='', $Flag=1)
  5.         Local $Pattern = '<' & $Tag & '(?:.+?)' & $Attribute & '="(.*?)"(?:.*?)>'
  6.         If ($Attribute = '') Then
  7.                 $Pattern = '<' & $Tag & '(?:.*?)>(.*?)</' & $Tag & '>'
  8.         EndIf
  9.         If ($Parent <> '') Then
  10.                 $Pattern = '<' & $Parent & '(?:.*?)>(?:.*?)' & $Pattern & '(?:.*?)</' & $Parent & '>'
  11.         EndIf
  12.         If ($Flag = -1) Then ; return boolean
  13.                 Return StringRegExp($XML, '(?s)' & $Pattern, 0)
  14.         EndIf
  15.         Local $SRE = StringRegExp($XML, '(?s)' & $Pattern, 3)
  16.         If @error Then
  17.                 SetError(1)
  18.                 Return ''
  19.         Else
  20.                 Switch $Flag
  21.                         Case 0 ; return only first match
  22.                                 If (UBound($SRE, 1) >= 1) Then
  23.                                         Return $SRE[0]
  24.                                 Else
  25.                                         SetError(10)
  26.                                         Return $SRE
  27.                                 EndIf
  28.                         Case 1 ; return the complete array
  29.                                 Return $SRE
  30.                         Case Else
  31.                                 SetError(2)
  32.                                 Return $SRE
  33.                 EndSwitch
  34.         EndIf
  35. EndFunc