2011-10-04 55 views
0

當談到編程時,我總是會遇到一些邏輯問題。我認爲這很合情合理,但對我來說很難,因爲我無法到達那裏。我正在使用XML :: LibXML來解析XML文件。現在在下面的代碼XML :: LibXML解析和快速選擇元素

<CommentsCorrectionsList> 
<CommentsCorrections RefType="Cites"> 
<RefSource>Brain Cogn. 2005 Jul;58(2):245</RefSource> 
</CommentsCorrections> 
<CommentsCorrections RefType="RepublishedIn"> 
<RefSource>Brain Cogn. 2005 Jul;58(2):246-8</RefSource> 
<PMID Version="1">16044513</PMID> 
</CommentsCorrections> 
<CommentsCorrections RefType="PartialRetractionOf"> 
<RefSource>Curr Opin Organ Transplant. 2001 Mar;6(1):95-101</RefSource> 
</CommentsCorrections> 
</CommentsCorrectionsList> 

我想爲所有其他RefType,除'引用'之外選擇commentscorrections。我該怎麼做。我想通過將所有需要的RefType放入另一個變量中,然後使用它來獲取其他數據。是不是正確的方式,我有一些虛擬變量試圖像下面

my $sam = "A" || "B" || "C"; 

print "test= "; 
my $test = <>; 
if ($test == $sam) { 
print $test; 
print "success";} else { 
print "NO";} 

我知道這可能是傻一些你,但我寫一個程序,因爲一個月左右的時間,我有時會感到沮喪,因爲我不不知道該怎麼做。我嘗試學習很多東西。請原諒我,如果這真是一個愚蠢的問題。

另外,我還以爲做

if(!($foo->findnodes('CommentsCorrectionList/CommentsCorrections[@RefType="Cites"]'))){ 
do foreach and get the data 
} 

但在這種情況下,我怎麼避免RefType的=的foreach中的「瀕危物種公約」,並使其等於我想其他RefType的。我的意思是我不知道這樣的布爾值是否可以在foreach語句中使用。我試圖找到並且也做了試驗和錯誤,但沒有任何結果。任何幫助是極大的讚賞。

謝謝。

回答

7
CommentsCorrectionList/CommentsCorrections[@RefType != "Cites"] 

我個人使用XPath spec作爲我的參考,但可能有更友好的參考。

+0

是的..這是什麼跳過了我的腦海。感謝您的參考,它確實有幫助。謝謝ikegami。 – smandape