XML::LibXML解析并快速选择元素



在编程时,我总是被一些逻辑问题所困扰。我认为这是合乎逻辑的,很容易,但对我来说很难,因为我无法做到这一点。我使用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>

我想为除"引用"之外的所有其他引用类型选择注释更正。我该怎么做呢?我想把所有想要的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
}

但在这种情况下,我如何避免foreach中的RefType="Cites",并使其与我想要的其他RefType相等。我的意思是,我不知道这样的布尔值是否可以在foreach语句中使用。我试着寻找,也试着犯错,但一无所获。非常感谢您的帮助。

谢谢。

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

我个人使用XPath规范作为参考,但可能还有更友好的参考。

相关内容

  • 没有找到相关文章

最新更新