0

プログラミングに関しては、私は常にいくつかの論理的な質問で立ち往生しています。これは論理的で簡単だと思いますが、そこにたどり着くことができないので、私にとっては難しいことです。XML::LibXMLを使用してXMLファイルを解析しています。今、次のコードで

<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>

'Cites'を除く他のすべてのRefTypeのcommentscorrectionsを選択したいと思います。どうすればいいのですか。必要なすべてのRefTypeを別の変数に入れ、それを使用して他のデータを取得することで、これを行うことを考えました。それは正しい方法ですか、私は次のようないくつかのダミー変数で試しました

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

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

これはばかげているかもしれませんが、私は1か月ほどからプログラムを作成していて、どうしたらよいかわからないためにイライラすることがあります。私は多くのことを学ぼうとしています。これが本当にばかげた質問であるならば、私を許してください。

また、やろうと思った

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

しかし、この場合、foreachでRefType = "Cites"を回避し、それを必要な他のRefTypeと等しくするにはどうすればよいですか。つまり、そのようなブール値をforeachステートメントで使用できるかどうかはわかりません。私は見つけてみて、試行錯誤もしましたが、手元には何もありませんでした。どんな助けでも大歓迎です。

ありがとうございました。

4

1 に答える 1

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

私は個人的にXPath仕様を参照として使用していますが、より親しみやすい参照があるかもしれません。

于 2011-10-04T06:11:15.870 に答える