FaridAgl 48 Posted October 5, 2011 <?xml version="1.0" encoding="UTF-8" ?> <user> <login> <name></name> <autologin>0</autologin> <pwd>0</pwd> <language>en</language> <skin>SkinBlack</skin> </login> <network tcp="0" udp="1513" used="1"> <upnp>1</upnp> </network> </user> It's my string, i want to read what is between <skin> and </skin>. in this string i should read "SkinBlack". It's my code so far, i can find where is it but i cant read it. $String = FileReadLine(FileOpen("user.xml"),8) $First = StringInstr($String,"<skin>") $Last = StringInstr($String,"</skin>") MsgBox(0,"", "I should read from " & $First + 6 & " to " & $Last & " in line 8.") Best Regards. http://faridaghili.ir Share this post Link to post Share on other sites
rcmaehl 50 Posted October 5, 2011 Try using: StringReplace($string, "<skin>", "") StringReplace($string, "</skin>", "") My UDFs are generally for me. If they aren't updated for a while, it means I'm not using them myself. As soon as I start using them again, they'll get updated.My ProjectsCisco Finesse, Github, IRC UDF, WindowEx UDF Share this post Link to post Share on other sites
FaridAgl 48 Posted October 5, 2011 Yes tnx, some thing like this: $String = FileReadLine(FileOpen("user.xml"),8) $NewString1 = StringReplace($String,"<skin>","") $NewString2 = StringReplace($NewString1,"</skin>","") MsgBox(0,"",$NewString2) http://faridaghili.ir Share this post Link to post Share on other sites
Syed23 5 Posted October 5, 2011 you can download which will help you to do this. i will do like this #include "_XMLDomWrapper.au3" $open = _XMLFileOpen(@DesktopDir & "\1.xml") $skin = _XMLGetChildText("/user/login/skin") MsgBox(0,"",$skin[1]) Thank you,Regards,[font="Garamond"][size="4"]K.Syed Ibrahim.[/size][/font] Share this post Link to post Share on other sites
Melba23 3,457 Posted October 5, 2011 D4RKON3, Try this: $sText = '<?xml version="1.0" encoding="UTF-8" ?>' & @CRLF & _ '<user>' & @CRLF & _ '<login>' & @CRLF & _ ' <name></name>' & @CRLF & _ ' <autologin>0</autologin>' & @CRLF & _ ' <pwd>0</pwd>' & @CRLF & _ ' <language>en</language>' & @CRLF & _ ' <skin>SkinBlack</skin>' & @CRLF & _ '</login>' & @CRLF & _ '<network tcp="0" udp="1513" used="1">' & @CRLF & _ ' <upnp>1</upnp>' & @CRLF & _ '</network>' & @CRLF & _ '</user>' $sSkin = StringRegExpReplace($sText, "(.*\v)*(\s)*<skin>(.*)<\/skin>(\v.*)*", "$3") MsgBox(0, "Skin", $sSkin) Clever things SREs! M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Share this post Link to post Share on other sites
FaridAgl 48 Posted October 5, 2011 really tnx, i thinks it's the best way. http://faridaghili.ir Share this post Link to post Share on other sites
madmasles 0 Posted October 5, 2011 (edited) $sText = '<?xml version="1.0" encoding="UTF-8" ?>' & @CRLF & _ '<user>' & @CRLF & _ '<login>' & @CRLF & _ ' <name>My name</name>' & @CRLF & _ ' <autologin>Yes</autologin>' & @CRLF & _ ' <pwd>No</pwd>' & @CRLF & _ ' <language>en</language>' & @CRLF & _ ' <skin>SkinBlack</skin>' & @CRLF & _ '</login>' & @CRLF & _ '<network tcp="0" udp="1513" used="1">' & @CRLF & _ ' <upnp>33</upnp>' & @CRLF & _ '</network>' & @CRLF & _ '</user>' Dim $aTags[7] = [6, 'name', 'autologin', 'pwd', 'language', 'skin', 'upnp'] For $i = 1 To $aTags[0] $sSearch = StringRegExpReplace($sText, '(?s).*?<' & $aTags[$i] & '>(.*?)</' & $aTags[$i] & '>?.*', '$1') If @extended = 1 Then MsgBox(0, $aTags[$i], $sSearch) Else MsgBox(16, 'Error', 'StringRegExpReplace') EndIf Next Edited October 5, 2011 by madmasles Share this post Link to post Share on other sites
somdcomputerguy 103 Posted October 5, 2011 Another way.. #include <String.au3> $var = _StringBetween("<skin>SkinBlack</skin>", "<skin>", "</skin>") MsgBox(0, '', $var[0]) - Bruce /*somdcomputerguy */ If you change the way you look at things, the things you look at change. Share this post Link to post Share on other sites