Applescript:剪切字符并粘贴到范围标记内

Applescript:剪切字符并粘贴到范围标记内,applescript,textwrangler,Applescript,Textwrangler,我一直在自动化一个过程,我们的工作涉及将word文档转换为TextWrangler中的html文件。除了最后一步,我已经把所有的东西都整理好了,这涉及到将文章的第一个字符移动到span标记中(Boss的设计选择,网站不支持非内联的CSS,或者我只使用第一个字母) 无论如何,HTML看起来是这样的: <p style='color: #444; font-size: 1.4em; line-height: 1.8em; font-weight: bold;'> <img styl

我一直在自动化一个过程,我们的工作涉及将word文档转换为TextWrangler中的html文件。除了最后一步,我已经把所有的东西都整理好了,这涉及到将文章的第一个字符移动到span标记中(Boss的设计选择,网站不支持非内联的CSS,或者我只使用第一个字母)

无论如何,HTML看起来是这样的:

<p style='color: #444; font-size: 1.4em; line-height: 1.8em; font-weight: bold;'>
<img style='display: block; float: right; margin-bottom: 30px; margin-left: 15px; width: 475px;' src='*****.jpg' alt='' width='950' height='713' />
<span style='color: #444; float: left; font-size: 3em;'></span>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer at rhoncus velit. Sed velit libero, venenatis non ornare ac, egestas vitae quam.</p>

Lorem ipsum dolor sit amet,是一位杰出的献身者。rhoncus velit处的整数。自由主义者,非奥纳雷的威尼斯人,自由主义者

我们的想法是将结束span标记后面的第一个字母移动到span标记内部,但我已经四处查看了一下,不知道从哪里开始


编辑:这可能会更容易知道,因为行中必要字母之前的字符数永远不会改变。因此,也许可以找到一种方法来分离行中的第n个字符并从那里开始?

这是一个愚蠢的示例,您需要对其进行一些润色:

set htmlText to "... your HTML ..."

set endSpanLength to 7
set endSpanPos to offset of "</span>" in htmlText
set firstCharPos to (endSpanPos + endSpanLength + 1)
set firstChar to character firstCharPos of htmlText

set oldEndSpan to "</span>" & linefeed & firstChar
set newEndSpan to firstChar & "</span>" & linefeed

findAndReplaceInText(htmlText, oldEndSpan, newEndSpan)

on findAndReplaceInText(theText, theSearchString, theReplacementString)
    set AppleScript's text item delimiters to theSearchString
    set theTextItems to every text item of theText
    set AppleScript's text item delimiters to theReplacementString
    set theText to theTextItems as string
    set AppleScript's text item delimiters to ""
    return theText
end findAndReplaceInText
将htmlText设置为“…您的HTML…”
将endSpanLength设置为7
在htmlText中将endSpanPos设置为“”的偏移量
将firstCharPos设置为(endSpanPos+endSpanLength+1)
将firstChar设置为htmlText的字符firstCharPos
将oldEndSpan设置为“”&换行符和firstChar
将newEndSpan设置为firstChar&“”&linefeed
FindReplaceIntext(htmlText、oldEndSpan、newEndSpan)
查找和替换文本时(文本、搜索字符串、替换字符串)
将AppleScript的文本项分隔符设置为搜索字符串
将文本项设置为文本的每个文本项
将AppleScript的文本项分隔符设置为替换字符串
将文本设置为字符串形式的文本项
将AppleScript的文本项分隔符设置为“”
返回文本
end FindReplaceIntext

脚本在设置firstCharPos时卡住,因为第一个字符在htmlText之外。相反,我让textwrangler处理包含span标记的第一行并返回整行,但脚本卡在偏移行
错误“无法将{«class MdfT»:缺少值,«class CpyL»:\”Lorem ipsum dolor sit amet,concertetur adipsing elit.

\”}转换为类型字符串。“number-1700 from”{«类MdfT»:缺少值,«类CpyL»:“Lorem ipsum door sit amet.

”}为了字符串
,出于某种原因,我以为你正在脚本中使用字符串。你可以分享一个例子,说明你的HTML对象是什么样子的吗?你可能还想在你的问题中添加一个信息,说明它是一个对象。很抱歉,我对AppleScript还不太熟悉。这是我所有的东西的粘贴ar,如果您正在寻找其他内容,请告诉我。发生的情况如下:代码粘贴在文章的开头,这就是所有发生的格式。我想创建另一个函数,它将在结束span标记后接收第一个字母,并将其移到内部。第一个字母将随每篇文章而变化,这(我认为)是原稿出现问题的原因。谢谢,如果我没有给你你需要的东西,请告诉我。