FaridAgl Posted October 5, 2011 Share 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 Link to comment Share on other sites More sharing options...
rcmaehl Posted October 5, 2011 Share 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 Projects WhyNotWin11Cisco Finesse, Github, IRC UDF, WindowEx UDF Link to comment Share on other sites More sharing options...
FaridAgl Posted October 5, 2011 Author Share 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 Link to comment Share on other sites More sharing options...
Syed23 Posted October 5, 2011 Share 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] Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted October 5, 2011 Moderators Share 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 Link to comment Share on other sites More sharing options...
FaridAgl Posted October 5, 2011 Author Share Posted October 5, 2011 really tnx, i thinks it's the best way. http://faridaghili.ir Link to comment Share on other sites More sharing options...
madmasles Posted October 5, 2011 Share 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 Link to comment Share on other sites More sharing options...
somdcomputerguy Posted October 5, 2011 Share 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. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now