1

XSLTを使用していくつかのテーブルを修正しようとしています。属性を使用する必要がありColspanますが、変換するコードはusesnamestnameendです。

例:

<entry namest="col1" nameend="col3"> 

これをに変える必要があり<td colspan="3">ます。変数を設定してsubstring($var,4,1)から、col3 / col1の末尾の数値を取得し、nameendの数字からnamestの数字を減算してから、1を加算することで、数学を実行することを考えましたが、機能しませんでした。

4

1 に答える 1

1

がコンテキストノードの場合entry、次の式は「col」値の差に1を加えたものを返します。これは、探しているcolspan値である必要があります。

substring(@nameend, 4) - substring(@namest, 4) + 1

substring(@attr, 4)@attr4番目の文字から最後までの部分文字列を返します。部分文字列は、マイナス演算子によって暗黙的に数値に変換されます。

libxsltを使用した式のテストxmllint

$ echo '<entry namest="col1" nameend="col3"/>' >so.xml
$ xmllint --shell so.xml 
/ > cd entry
entry > xpath substring(@nameend, 4) - substring(@namest, 4) + 1
Object is a number : 3
于 2013-03-26T18:58:07.280 に答える