Быстрый разбор XML :: LibXML и выбор элемента - PullRequest
0 голосов
/ 04 октября 2011

Я всегда зацикливаюсь на некоторых логических вопросах, когда дело касается программирования.Это логично и легко, я думаю, но трудно для меня, так как я не могу туда добраться.Я использую 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».Как мне это сделать.Я подумал сделать это, поместив все требуемые RefTypes в другую переменную, а затем используя ее для получения других данных.Это правильный путь, я пробовал с некоторыми фиктивными переменными, такими как следующие

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 = "Cites" в foreach и сделать его равным другому RefType, который я хочу.Я имею в виду, я не знаю, можно ли использовать такое логическое значение в выражении foreach.Я пытался найти, а также сделал проб и ошибок, но ничего не под рукой.Любая помощь с благодарностью.

Спасибо.

1 Ответ

7 голосов
/ 04 октября 2011
CommentsCorrectionList/CommentsCorrections[@RefType != "Cites"]

Лично я использую XPath spec в качестве справочной информации, но там могут быть более дружеские ссылки.

...