ファイル/文字列から XML を正常にロードし、OS X Yosemite (10.10) Javascript for Automation のデータにアクセスできる構文を推測した人はいますか?
ドキュメンテーションとコード サンプルはまだかなり少なく (2014 年 11 月現在)、XML (OPML) ファイルを読み取るための 3 つの別々のアプローチについては、現時点で私の帰納的スキルが枯渇しています。
- 最も有望:
$.NSXMLDocument
いろいろな方法で文字列データをつかむとうまくいきますが、
function readTextFromFile(strPath) {
return $.NSString.stringWithContentsOfFile(strPath);
}
function readDataFromFile(strPath) {
return $.NSData.alloc.initWithContentsOfFile(strPath);
}
function filePath(strPath) { return Path(strPath); }
しかし、このテーマの順列は実を結びませんでした:
var strPath='/Users/houthakker/Desktop/notes-2014-11-04.opml',
dataXML = readData(strPath),
strXML = readTextFile(strPath),
oXMLDoc1, oXMLDoc2;
oXMLDoc1 = $.NSXMLDocument.alloc.initWithXMLString(strXML,0,null);
oXMLDoc2 = $.NSXMLDocument.alloc.initWithData(dataXML,0,null);
('function undefined' エラー メッセージは、これら 2 つの init 関数が公開されていない可能性があることを示唆していますが、公開されinitWithRootElement()
ているようです)
ほとんどの進歩:
$.NSXMLParser
var oParser = $.NSXMLParser.alloc.initWithData(dataXML);
return oParser.parse; //true
しかし、イベント駆動型の解析にはさらに複雑さが必要なようで、それは私には不透明なままであり、私の単純なニーズ (適度なサイズのローカル OPML ファイルの読み取りと変換) とは一致しない可能性があります。
- 最もよく知られている:
Application("System Events")
Applescript では、これは System Events コードで実行できます。
set fOPML to (POSIX file "/Users/houthakker/Desktop/notes-2014-11-04.opml" as alias) as string
tell application "System Events"
tell XML file fOPML
-- now access XML Elements by name or index
end tell
しかし、UNIX の Path()、文字列、またはコロンで区切られた MAC パス文字列の順列を使用して XMLFile オブジェクトを初期化するための成功した JavaScript イディオムは見つかりませんでした。
ここで何か考えや成功した経験はありますか?