// ブック存在チェック if (app.books.length == 0) { alert("ブックが開かれていません。"); } else { // ファイル保存ダイアログボックス var xmlPath = File.saveDialog("XMLファイルを保存","XML Files:*.xml"); if (xmlPath) { // XML文字列 var szXML = ""; // XMLヘッダー szXML += "\n"; szXML += "\n"; // 処理対象ブック var targetBook = app.activeBook; for (var nContentPos = 0; nContentPos < targetBook.bookContents.length; nContentPos++) { // 処理対象コンテンツ var targetContent = targetBook.bookContents.item(nContentPos); // 名前 var docName = targetContent.name; // パス var docPath = targetContent.fullName; // XML:ドキュメント情報 szXML += "\n"; // ドキュメントの取得 var targetDoc = null; var bOpenDoc = false; for (var nDocPos = 0; nDocPos < app.documents.length; nDocPos++) { var checkDoc = app.documents[nDocPos]; // パスが同じか if (checkDoc.fullName.name == docPath.name) { targetDoc = checkDoc; break; } } if (!targetDoc) { // ドキュメントを開く targetDoc = app.open(docPath, false); if (!targetDoc) { alert("ドキュメントを開けません。:" + docName); break; } bOpenDoc = true; } // ハイパーリンク検索 { for (var nLinkPos = 0; nLinkPos < targetDoc.hyperlinks.length; nLinkPos++) { var targetLink = targetDoc.hyperlinks[nLinkPos]; // XML:ハイパーリンク情報 szXML += "\n"; // XML:ハイパーリンク情報・destination szXML += "\n"; // XML:ハイパーリンク情報・source szXML += "\n"; szXML += "\n"; } } if (bOpenDoc && targetDoc) { // ドキュメントを閉じる targetDoc.close(); } szXML += "\n"; } szXML += "\n"; // XMLファイル作成 var xmlFileObj = File(xmlPath); saveUTF8BOM(xmlFileObj, szXML); xmlFileObj.execute(); } } // UTF-8保存 function saveUTF8BOM(fileObj, txt) { fileObj.encoding="binary"; fileObj.open ("w"); fileObj.write("\xEF\xBB\xBF"); fileObj.close(); fileObj.encoding="utf-8"; fileObj.open ("a"); fileObj.write(txt); fileObj.close(); }