В продолжение моего предыдущего вопроса (Как заменить все теги привязки на другую привязку с помощью регулярных выражений в ColdFusion), я хотел бы использовать JSoup для управления содержимым Argument
, поступающего из Form
, прежде чем вставлять обработанный контент в базу данных.
Вот пример того, что отправляется на сервер из формы:
<form>
<div id="Description" contenteditable="true">
<p>
Terminator Genisys is an upcoming 2015 American
science fiction action film directed by Alan Taylor.
<img id="Img0" src="http://www.moviepics.com/terminator1.jpg" />
<img id="Img1" src="http://www.moviepics.com/terminator2.jpg" />
<img id="Img2" src="http://www.moviepics.com/terminator2.jpg" />
You can find out more by <a href="http://www.imdb.com">clicking here</a>
</p>
</div>
</form>
Вот как мой CFC справится с этим в настоящее время (основная идея):
<cfquery>
INSERT INTO MyTable (Value1, Description)
VALUES
(
<cfif structkeyexists(ARGUMENTS.Value1)>
<cfqueryparam value="#ARGUMENTS.Value1#" cf_sql_type="nvarchar" />
<cfelse>
NULL
</cfif>
,
<!---
Before the below happens, I need to replace the src
attributes of the img tags of Arguments.Description
--->
<cfif structkeyexists(ARGUMENTS.Description)>
<cfqueryparam value="#ARGUMENTS.Description#" cf_sql_type="nvarchar" />
<cfelse>
NULL
</cfif>
)
</cfquery>
Я знаю, что <div>
не является элементом формы, но не беспокойтесь, он все еще отправляется в CF11, как будто это элемент формы, использующий хитрость JQuery serialize().
Когда CF11 обрабатывает эту форму, он получает данные в ARGUMENTS.Description
. Что я хочу сделать, так это проанализировать содержимое этого аргумента, найти теги <img>
и извлечь атрибут src
.
Затем я проведу дополнительную обработку, но в конечном итоге мне нужно будет заменить значения src
в каждом из тегов img
другим значением, созданным CF11 на стороне сервера. Только тогда я могу вставить значение формы в базу данных.
Может ли JSoup помочь в такой задаче? Это похоже на простую задачу поиска и замены, но я очень не понимаю, как это сделать.