|
|||||||
![]() |
|
|
Thread Tools | Search this Thread | Display Modes |
|
|
#1 |
|
(AppleScript) "Tell"-ing every XML element to do something
I have multiple elements in an XML file. I need to "tell" each of them to do something.
Here's the code: Code:
on tellEveryXMLElementWithName(elementContainer, elementName, codetorun) try tell application "System Events" set elements to XML elements of elementContainer repeat with I from 1 to count of elements set e_name to (get name of XML element I of elementContainer) as string if e_name is equal to elementName then log "The script got this far." run script codetorun end if end repeat end tell return "success" on error errMsg return errMsg end try end tellEveryXMLElementWithName set the_file to (choose file without invisibles) as string tell application "System Events" set file1 to XML file the_file tell file1 set thecode to "display dialog the /'hi'/" set successful to my tellEveryXMLElementWithName(file1, "tableViewCell", thecode) end tell end tell You may be thinking, "Here's your answer. Switch to a different programming language." My response to that is "I don't want to."
__________________
Now available on the iPad App Store: Clean Cuisine Click here to load its App Store page. |
|
|
|
0
|
|
|
#2 |
|
I think I figured out the problem. System Events is looking in the first level. If the element is not in the first level, then as far as System Events is concerned, the element doesn't exist. Therefore, I need to look in a specific level.
__________________
Now available on the iPad App Store: Clean Cuisine Click here to load its App Store page. |
|
|
|
0
|
|
|
#3 |
|
OK, I have a new set of code:
Code:
on tellEveryXMLElementWithName(elementContainer, elementName, codetorun)
try
set allElements to {}
tell application "System Events"
set elements to every XML element of elementContainer
set elementCount to count of elements
repeat with I from 1 to elementCount
set theElement to XML element I of elementContainer
set e_name to (get name of theElement) as string
if e_name is equal to elementName then
set occurrences to occurrences + 1
log "The script got this far."
tell theElement
run script codetorun
end tell
end if
end repeat
end tell
return "success"
on error errMsg
return errMsg
end try
end tellEveryXMLElementWithName
set the_file to (choose file without invisibles) as string
tell application "System Events"
set file1 to XML file the_file
tell file1
my tellEveryXMLElementWithName(file1, "tableViewCell", "display dialog hi")
end tell
end tell
__________________
Now available on the iPad App Store: Clean Cuisine Click here to load its App Store page. |
|
|
|
0
|
![]() |
|
«
Previous Thread
|
Next Thread
»
| Thread Tools | Search this Thread |
| Display Modes | |
|
|
All times are GMT -5. The time now is 05:22 AM.






Linear Mode
