1
/* $Revision: 6707 $ $Author: egonw $ $Date: 2006-07-30 16:38:18 -0400 (Sun, 30 Jul 2006) $
3
* Copyright (C) 2007 Egon Willighagen <egonw@users.sf.net>
5
* Contact: cdk-devel@lists.sourceforge.net
7
* This program is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public License
9
* as published by the Free Software Foundation; either version 2.1
10
* of the License, or (at your option) any later version.
11
* All we ask is that proper credit is given for our work, which includes
12
* - but is not limited to - adding the above copyright notice to the beginning
13
* of your source code files, and to any copyright notice that you may distribute
14
* with programs based on this work.
16
* This program is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU Lesser General Public License for more details.
21
* You should have received a copy of the GNU Lesser General Public License
22
* along with this program; if not, write to the Free Software
23
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
25
package net.sf.cdk.tools.bibtex;
27
import java.util.ArrayList;
28
import java.util.Iterator;
29
import java.util.List;
33
import nu.xom.XPathContext;
36
* Wrapper for a BibTeXML file.
40
public class BibTeXMLFile {
42
public final static String BIBTEXML_NAMESPACE = "http://bibtexml.sf.net/";
45
private XPathContext context;
47
public BibTeXMLFile(Node root) {
49
context = new XPathContext("bibtex", BIBTEXML_NAMESPACE);
50
context.addNamespace("b", BIBTEXML_NAMESPACE);
54
* Returns an Iterator<BibTeXMLEntry>.
56
public Iterator getEntries() {
57
List entries = new ArrayList();
58
Nodes results = root.query("//b:entry", context);
59
for (int i=0; i<results.size(); i++) {
60
entries.add(new BibTeXMLEntry(results.get(i)));
62
return entries.iterator();
65
public BibTeXMLEntry getEntry(String id) {
66
Nodes results = root.query("//b:entry[./@id='" + id+ "']", context);
67
if (results.size() > 0) {
68
return new BibTeXMLEntry(results.get(0));