Bash
是否有任何工具可以讓我檢查 XML 節點的字元串長度
我想知道是否有任何工具可以做到這一點:
範例 XML:
<node1> <Data> <Unique>123456789-1234567891</Unique> </Data> </node1>
我希望搜尋的是 Unique 小於 10 的位置 - 如果 Right 小於 9 從 - 到右。
所以搜尋會將此記錄/節點標記為問題
<Unique>6789-1234567891</Unique>
我試圖使用 Grep 來做到這一點,但是我已經開始在 Bash 中使用各種 XML 工具,所以我想我可能會先問一個特定工具的問題。
xmllint 是我正在使用的一個。
(很抱歉給你發垃圾郵件)在 perl 中使用 XML 解析器
(如有需要:
sudo cpan XML::DT
)#!/usr/bin/perl use XML::DT; my $file = shift; # $c - contents after child processing print dt( $file, 'Unique' => sub{$c =~ s/^(\d{1,9}-\d+|\d+-\d{1,8})$/FIXME:$1/; toxml }, )
在這種情況下,您會得到一個帶有“FIXME”註釋的 XML
grep -nP "<Unique>(\d{1,9}-\d+|\d+-\d{1,8})</Unique>" ex.xml
-n
輸出錯誤 Uniques 的行號