xformsを使用してマークされたテキストを要素にラップする方法はありますか? 例えば:
これをタグで囲むword
--> この<tag>
単語をタグで囲む</tag>
現在exist-dbサーバーでXsltxformsを使用しているxformsは初めてで、何かが足りないのか、たとえばテキストエリアボックスでそのようなことをする方法がないのかを調べようとしています。前もって感謝します!
修正された回答: いくつかの可能な解決策は、Rangy ( https://github.com/timdown/rangy ) などのライブラリを XSLTForms に統合するか、TinyMCE などのリッチテキスト エディター (この例では XSLTForms が行っているものです: http: //www.agencexml.com/xsltforms/tinymce.xml )。別のオプションは、TEI 用に設計された Teian ( https://sourceforge.net/projects/teian/ ) を調べることですが、正しい方向への一歩になる可能性があります。
XForms 勧告には、このような処理のためのメカニズムはありません。
ただし、これは XSLTForms の拡張機能として追加されています。「xf:wrap」という名前の追加のアクションを使用すると、考慮すべきコントロールと、選択の前後に何を追加するかを示すことができます。
<?xml-stylesheet href="xsl/xsltforms.xsl" type="text/xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
<head>
<title>Wrap Selection</title>
<xf:model>
<xf:instance>
<data xmlns="">Sed ut perspiciatis, unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt, explicabo.</data>
</xf:instance>
</xf:model>
</head>
<body>
<xf:trigger>
<xf:label><a></xf:label>
<xf:wrap ev:event="DOMActivate" control="t" pre="<a>" post="</a>"/>
</xf:trigger>
<xf:trigger>
<xf:label><b></xf:label>
<xf:wrap ev:event="DOMActivate" control="t" pre="<b>" post="</b>"/>
</xf:trigger>
<xf:trigger>
<xf:label><c></xf:label>
<xf:wrap ev:event="DOMActivate" control="t" pre="<c>" post="</c>"/>
</xf:trigger>
<br/>
<xf:textarea id="t" ref="." incremental="true"/>
<br/>
<xf:output value=".">
<xf:label>Value: </xf:label>
</xf:output>
</body>
</html>
xf:setselection アクションには、さらに別の可能性があります。
<?xml-stylesheet href="xsl/xsltforms.xsl" type="text/xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
<head>
<title>Set Selection</title>
<xf:model>
<xf:instance>
<data xmlns="">Sed ut perspiciatis, unde omnis iste natus error sit voluptatem accusantium doloremque laudantium...</data>
</xf:instance>
</xf:model>
</head>
<body>
<xf:trigger>
<xf:label><span></xf:label>
<xf:setselection ev:event="DOMActivate" control="t" value="concat('<span start="', control-property('t', 'selectionStart'), '" end="', control-property('t', 'selectionEnd'), '">', selection('t'), '</span>')"/>
</xf:trigger>
<br/>
<xf:textarea id="t" ref="." incremental="true"/>
<br/>
<xf:output value=".">
<xf:label>Value: </xf:label>
</xf:output>
</body>
</html>
ライブ デモ: http://www.agencexml.com/direct/wrap/setselection.xml
どう思いますか?