tohokuaikiのチラシの裏

技術的ネタとか。

xslt

XSL2.0のindex-ofとtokenize

XSL2.0のindex-ofとtokenizeをつかおうとしてはまったこと tokenizeをvalue-ofで受けてはいけない <xsl:variable name="excludes" as="xs:string*"> <xsl:value-of select="tokenize('foo,bar,baz', ',')"/> </xsl:variable> ってやってて$excludesに全然sequenceが入って来なくてぬがーっておもってたんだけど、 <xsl:variable name="excludes" as="xs:string*"> </xsl:variable>

XSL俺的サンプル

XSL書いてて、自分のサンプル用メモ。随時追加 属性値hogehoge以外をapply-templateさせる <xsl:apply-templates select="@*[not(name()='hogehoge')]"/> ある変数要素配下のfoo要素で属性barの値がbazであれば条件 <xsl:if test="count($wrapper/foo[@bar='baz'])>0"> </xsl:if></xsl:apply-templates>

XSLTのoutput要素では変数を使えないが、result-documentでは変数を使える件

Saxon-bの9あたりで。XSLTを <xsl:output method="xml" omit-xml-declaration="yes" encoding="UTF-8" indent="yes" doctype-system="{$dtd_path}"/> って書くと、 ってまんまでちゃうのに、 <xsl:template match="/"> </xsl:template></xsl:output>

SaxonでJavaのAPIを通してパラメータを渡す方法

Javaのコード内の変数をXSLスタイルシートに渡す方法を調べた。参考ページ パラメータを使った値の受渡し Saxon 9.2 / Java / XSLT: setting transformer parameters using setParameters() - Stack Overflow Java側の設定 TransformerのsetParameterメソッ…

XSLTの疑問とその回答(1)

XSLについて色々と習ったことを一覧で。 applly-templatesでテンプレートが競合する場合 テンプレートの適用には、優先順位がある。 優先順位が最終的に決められないとエラーになる。 優先順位は、テンプレートの記述順ではない 優先順位を決めるには、より…

XSLの変数とそのスコープについて

XSLの変数には2つある。paramとvariable variableは変数なんだけど、どっちかというと定数に近い概念で一度設定すると上書きができない。 variable 上書きができない xsl:stylesheetの要素に記述することができて、その場合はグローバル変数になる param テ…

XSLTにおけるXMLのデフォルトネームスペースについて

ドはまり。変換元XMLでネームスペースを <ac:confluence xmlns="http://www.w3.org/1999/xhtml" xmlns:ac="http://www.atlassian.com/schema/confluence/4/ac/" xmlns:ri="http://www.atlassian.com/schema/confluence/4/ri/" > ってやってて、XSLで </ac:confluence>

XPathではまり

OR(もしくは、和集合)ではまり XPathで、「タグA、またはタグAの中にB/Cって入ってる場合はA/B/C」ってのを表現したくて、要するに <root> <A/> <A><B><C/></B></A> </root> で、//A と //A/B/C って2回書くのが面倒で1回で済ます方法を探してて。//A[. or B/C] じゃんって思ってたんだけど、…

「XSLT実践ガイド」を読んでて気になった雑多なメモ

[www.amazon.co.jp/dp/4756140653:title=XSLT実践ガイド] p.94 xsltプロセッサは文書で最初にルートノードを読み取る apply-templates <PLANETS> <PLANET> <NAME>Mercury</NAME> <MASS UNITS="(Earth = 1)">.0553</MASS> <DAY UNITS="days">58.65</DAY> <RADIUS UNITS="miles">1516</RADIUS> <DENSITY UNITS="(Earth = 1)">.983</density></planet></planets>