2024-04-16
1つのXML内の階層が違うノード要素を組み合わせる例
フロー全体の動きはXML子要素同士の結合と出力例1を参照。
XML内のfactoryノードの抽出条件をもっと厳しくしたい。
Get data from XML 1で行っている以下の指定は「ノード名が“factory”から始まる」の意なので、これを「ノード名が“factory”から始まり英大文字1桁+数字3桁かつ最後の数字が1のノード」を対象にしたい。
/info/factories/*[starts-with(name(),'factory')]
PentahoのXPathは正規表現を受け付けてくれないようなので、別の方法でフィルタする必要がある。
入力XML1 |
---|
|
入力XML2 |
|
出力CSV |
|
XML子要素同士の結合と出力例1との差分について説明する。
Get data from XML 1でフィルターしきれなかった内容を補完する。
“factory”で始まる名前が項目factoryに格納されてくるので、改めて正規表現で名称を指定し、合致しないレコードを除外する。
この例の意味するところは「項目factoryの値が“factoryXnn1”の形式、Xは英大文字でnnは00~99であれば処理する」の意となる。