文字列の置換は、translate() 関数がありますが、文字の長さを変更することはできません。このような場合、XML を生成するプロセスで、予め置換を行う方が得策です。
0 件のコメント
文字列の置換は、translate() 関数がありますが、文字の長さを変更することはできません。このような場合、XML を生成するプロセスで、予め置換を行う方が得策です。
文字列操作系の関数には以下のようなものがあります。
| 関数名 | 機能 |
|---|---|
| concat() | |
| contains() | |
| format-number() | |
| normalize-space() | |
| starts-with() | |
| string() | |
| string-length() | 文字数の取得(バイト数ではない)します。要素が空を判断するのにこの関数を使用して、0 であるか否かで判断できます。 |
| substring() | |
| substring-before() | |
| substring-after() | |
| translate() |
関数による式を挿入するには、下記のように記述すればよいでしょう。
<xsl:value-of="関数の表現"/>
XML 宣言の後に、下記のようにスタイルシートを指定します。
<?xml-stylesheet href="public_office.xsl" type="text/xsl"?>
Windows 2000 Server の IIS4 を使って、サーバーサイド XSLT 適用を行うサンプルです。適当なWebサイト上に下記ファイルを作り、aspをリクエストしてください。
<?xml version="1.0" encoding="shift_jis" ?>
<prefecture>
<city>
<name>○○さん</name>
<address>××市□□町</address>
<url>http://www.example.jp/</url>
</city>
</prefecture>
<?xml version="1.0" encoding="shift_jis" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" encoding="shift_jis" omit-xml-declaration="yes"/> <xsl:template match="/"> <xsl:apply-templates select="prefecture"/> </xsl:template> <xsl:template match="prefecture"> <xsl:apply-templates select="city"/> </xsl:template> <xsl:template match="city"> <xsl:value-of select="name"/> </xsl:template> </xsl:stylesheet>
<%
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
Set objXSL = Server.CreateObject("Microsoft.XMLDOM")
objXSL.async = false
objXSL.load Server.MapPath("public_office.xsl")
objXML.async = false
objXML.load Server.MapPath("public_office.xml")
Response.Write (objXML.documentElement.transformNode (objXSL.documentElement))
%>
mklink /d c:\server\directory \\server\directory
cast('長い文字列をフィールドサイズで切り捨てる' as varchar(5))
sysadminロールが付いている場合は、dboとして扱われるので、デフォルトスキーマを指定していても省略できません。
translate( field_name, ' 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!?+-()', ' 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!?+-()' )
/path/to/temp にある temp から始まるファイルで60分経過したものを削除する場合
#!/bin/sh
find /path/to/temp -name "temp*" -amin +60 -exec rm {} \;
aliases にパイプを追加
default.example.com: |/path/to/auto/mail/catch.sh
/etc/smrsh/ に実行するコマンドを指定
cd /etc/smrsh ln -s /path/to/auto/mail/catch.sh ./
/path/to/auto/mail/catch.sh はこうなってる
#/bin/sh sudo -u user /path/to/auto/mail/catch.php
/etc/sudoers に実行許可するコマンドを入れる
mail ALL = (user) NOPASSWD: /path/to/auto/mail/catch.php
/etc/sudoers の以下の行をコメントアウト
#Defaults requiretty