我正在获取一个流文件,其内容之一的列为十六进制值。我的要求是派生带有相应十进制值的新列。如果我尝试使用具有替换值策略的UpdateRecord Processor作为“文字值”,并尝试通过使用$ {field.value:fromRadix(16)}更新现有字段值,则它工作正常。但是,如果我尝试使用现有列的值派生新列,则会出现运行时错误。我将替换值策略用作“记录路径值”,并将动态属性值用作$ {/ existing_column:fromRadix(16)}。您能告诉我这里缺少什么吗?
答案 0 :(得分:0)
如果将策略设置为“记录路径”,则该值必须是EL评估后的有效记录路径语句,并且您拥有的语句无效: <?php
$rss = new DOMDocument();
$rss->load('here I would like to echo a URL written in a text file');
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
);
array_push($feed, $item);
}
$limit = 5;
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$description = $feed[$x]['desc'];
$date = date('d-m-y H:i » ', strtotime($feed[$x]['date']));
echo ''.$date.'';
echo '<b><a href="'.$link.'" title="'.$title.'">'.$title.'</a></b>. ';
echo ''.$description.'';
echo '<hr>';
}
?>
。它将失败,因为首先要执行EL时,EL不知道${/existing_column:fromRadix(16)}
的时间。
确实需要fromRadix的记录路径功能,以便您可以进行/existing_column
。
没有,我认为您需要执行两步过程...
步骤1-第一个UpdateRecord具有fromRadix( /existing_column, 16)
,以使用原始列的十六进制值创建一个新列。
第2步-第二个UpdateRecord具有/new_column = /existing_column
来转换新列。