Мне нужно разобрать xml для проекта applecript, и я получил старт, но по какой-то причине мой код работает не так, как я ожидал, он находит искомый элемент, но не возвращает значение
вот код
set xmlFile to ((choose file without invisibles) as string)
tell application "System Events"
set xdata to XML element 1 of contents of XML file xmlFile
set foo to my getxml(xdata, "line1")
return foo
end tell
on getxml(xmldata, e)
tell application "System Events"
repeat with i from 1 to count of XML elements of xmldata
set e_name to (get name of XML element i of xmldata) as Unicode text
log e_name
if e_name is equal to e then
display dialog "hello"
return value of XML element i of xmldata
else
my getxml(XML element i of xmldata, e)
end if
end repeat
end tell
end getxml
вот код xml
<?xml version="1.0" encoding="UTF-8"?>
<foo>
<bar>
<line1>test</line1>
</bar>
<crap>ohh</crap>
</foo>
что интересно, если я дам ему предмет верхнего уровня, как он делает то, что я ожидаю
поэтому я просто хочу исправить этот код или сделать что-то лучше, может быть, что-то из оболочки, которую я могу вызвать для анализа моего xml?
спасибо