在AppleScript中使用XML属性触发-1728错误该如何解决
错误原因
- 路径格式不兼容:System Events 不支持
~作为用户目录的简写写法,你传入的~/Desktop/xml.xml无法被正确识别,必须使用完整绝对路径,格式为/Users/[你的用户名]/Desktop/xml.xml - XML层级引用错误:XML文件对象的首个子节点是根元素,你提供的XML结构中根元素本身就是
<example>,你代码中额外在XML文件下查找XML element "example"属于多嵌套了一层节点,自然找不到对应对象 - 可选优化:直接返回XML属性对象得到的是对象引用而非属性值,建议显式取
value得到文本内容
修正后代码
tell application "System Events" -- 替换为你自己的文件完整绝对路径 set xmlFile to XML file "/Users/xxx/Desktop/xml.xml" tell root XML element of xmlFile -- 根元素就是example,直接访问其下的sample节点即可 return value of XML attribute "value" of XML element "sample" end tell end tell
如果不想写死用户名,也可以用系统命令动态获取桌面路径:
set desktopPath to POSIX path of (path to desktop as text) set fullPath to desktopPath & "xml.xml" tell application "System Events" set xmlFile to XML file fullPath tell root XML element of xmlFile return value of XML attribute "value" of XML element "sample" end tell end tell
内容的提问来源于stack exchange,提问作者gurkensaas
相关产品推荐
相关产品推荐

