my notebook blog : XML
Node.js で XML文書をパース
大量のXML文書から InDesign 文書を生成する必要が生じたので、Node.js での XMLパース方法をメモ。
いわゆる PI と呼ばれる ProcessingInstruction に JDOM でアクセスする方法
こんな XML文書があったときに <?xml-stylesheet href="style.xsl" type="text/xsl"?>
に
該当する内容に JDOM でアクセスするにはどうしたらいいの?という話。
<?xml version="1.0"?>
<?xml-stylesheet href="style.xsl" type="text/xsl"?>
<html>
<body><h1>hello</h1></body>
</html>
InDesign , XML文書からテーブルを生成する
InDesign では XML文書を流し込み組版するための仕組みが予め備わっています。 所定のルールでXMLを書いておき、それを所定の方法で読み込めばよいだけです。
XSLT変換処理あれこれ
諸事情によりいろいろな方法でXSLTによるXML変換をするので、そのやり方メモ。 saxon, xsltproc, ant を使う。
XSLTで内容をコピーした上で XPATHで指定した位置に要素を追加する記述
title要素の前に border 要素を追加したいなど、 変換後のXMLに要素などを追記するという XSLの記述はよく使うのでメモ。
変換元のXML
<?xml version="1.0" encoding="UTF-8"?>
<book>
<chapter>
<sect1>
<title>設置と接続</title>
</sect1>
</chapter>
</book>
この XMLのタイトル要素の前に border 要素を追加したい…以下のように。
<border />
<title>設置と接続</title>
これをやってみます。
XPath で指定した特定部分だけをXML文書から抜き出すスタイルシート
XML文書から XPath で指定した部分だけを抜き出したい。
XSLTではデフォルトの変換規則があるため、これが意外に難しかったのでメモ。
(デフォルト規則が分かっていれば難しいことはない。)
XPathで指定した部分を取り出したいだけならば、xpathコマンドを使えばOK.
Ubuntu などでは、apt-get install libxml-xpath-perl でインストールできます。
以下のように使えます。$ cat sample.xml | xpath -q -e "/book/chapter/title/text()"