我正在研究文件上傳系統,該系統還根據上傳的文件中的信息解析上傳的文件並生成另一個文件。這些文件以XML文件的形式上傳。我只需要解析每個文件中的第一個XML標記,並且只需要獲取標記中單個屬性的值。Perl使用Split或Regex提取XML標籤屬性
示例XML:
<LAB title="lab title goes here">...</LAB>
我要找提取使用Perl的分裂功能的title屬性的值或使用正則表達式的好方法。如果我有能力在服務器上安裝Perl模塊,我將使用Perl XML解析器,但我沒有這種能力。
該XML位於一個XML文件中,我正在打開,然後試圖解析出屬性值。我曾嘗試使用Split和Regex都沒有運氣。但是,我不熟悉Perl或正則表達式。
這是他基本的輪廓到目前爲止我的代碼:
open(LAB, "<", "path-to-file-goes-here") or die "Unable to open lab.\n";
foreach my $line (<LAB>) {
my @pieces = split(/"(.*)"/, $line);
foreach my $piece (@pieces) {
print "$piece\n";
}
}
我一直在使用拆分來匹配標題試圖單獨使用
/title/
還是對陣=字符或「字符使用
/\=/ or /\"/
我也嘗試過使用正則表達式做類似的事情,並沒有l也是。我不確定我是不是使用正確的表達式,或者如果這是不可能的使用split/regex。任何關於此事的幫助都將非常感激,因爲我仍然是Perl的新手。如果這類問題已在別處得到解答,我表示歉意。我做了一些搜索,找不到解決方案。大多數線程都建議使用XML解析Perl模塊,如果我有權限安裝它們,我會這樣做。
2013年。使用XML解析器。 – 2013-04-09 18:28:03
[是的,即使你可以使用CPAN](http://www.perlmonks.org/?node_id=693828)。 – 2013-04-09 18:30:04
乾杯,謝謝你的信息。 – Fedexico 2013-04-09 19:23:24