我正在尝试阅读这个xml文件,我只对Item Name =" PubDate"感兴趣。属性。
<eSummaryResult>
<DocSum>
<Id>23373820</Id>
<Item Name="PubDate" Type="Date">2013 Mar</Item>
<Item Name="EPubDate" Type="Date">2013 Feb 1</Item>
<Item Name="Source" Type="String">Expert Opin Emerg Drugs</Item>
<Item Name="AuthorList" Type="List">...</Item>
<Item Name="LastAuthor" Type="String">Rascol O</Item>
<Item Name="Title" Type="String">...</Item>
<Item Name="Volume" Type="String">18</Item>
<Item Name="Issue" Type="String">1</Item>
<Item Name="Pages" Type="String">39-53</Item>
<Item Name="LangList" Type="List">...</Item>
<Item Name="NlmUniqueID" Type="String">101135662</Item>
<Item Name="ISSN" Type="String">1472-8214</Item>
<Item Name="ESSN" Type="String">1744-7623</Item>
<Item Name="PubTypeList" Type="List">...</Item>
<Item Name="RecordStatus" Type="String">PubMed - indexed for MEDLINE</Item>
<Item Name="PubStatus" Type="String">ppublish+epublish</Item>
<Item Name="ArticleIds" Type="List">...</Item>
<Item Name="DOI" Type="String">10.1517/14728214.2013.766168</Item>
<Item Name="History" Type="List">...</Item>
<Item Name="References" Type="List"/>
<Item Name="HasAbstract" Type="Integer">1</Item>
<Item Name="PmcRefCount" Type="Integer">2</Item>
<Item Name="FullJournalName" Type="String">Expert opinion on emerging drugs</Item>
<Item Name="ELocationID" Type="String">doi: 10.1517/14728214.2013.766168</Item>
<Item Name="SO" Type="String">2013 Mar;18(1):39-53</Item>
</DocSum>
</eSummaryResult>
当我的程序通过以下代码
时DocumentBuilderFactory dbPub = DocumentBuilderFactory.newInstance();
DocumentBuilder db2 = dbPub.newDocumentBuilder();
url1 = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pubmed&id=23373820";
Document docPmid = db2.parse(new URL(url1).openStream());
NodeList nl = docPmid.getElementsByTagName("Item");
if(nl !=null && nl.getLength() > 0)
{
for (int y = 0; y < nl.getLength(); y++)
{
Element el = (org.w3c.dom.Element) nl.item(y);
if (el.hasAttribute("Name") && el.getAttribute("Name").equals("PubDate"))
{
String pubDate = el.getAttribute("Name");
System.out.println("PubDate :"+pubDate);
}
}
}
而不是获得PubDate:2013年3月 我得到PubDate:PubDate
答案 0 :(得分:0)
可能你只是忽略了......
如果
,您正在使用相同的内容if (el.hasAttribute("Name") && el.getAttribute("Name").equals("PubDate"))
以后再打印:
String pubDate = el.getAttribute("Name");
System.out.println("PubDate :"+pubDate);
这可能不是您想要做的,您想要阅读内容,而不是属性值......
答案 1 :(得分:0)
在此XML行
中<Item Name="PubDate" Type="Date">2013 Mar</Item>
你有一个名为'Item'的元素,它有两个属性:
和一个值,即“2013年3月”。
在您的代码中,符合:
String pubDate = el.getAttribute("Name");
你要求一个名为'Name'的属性的值,实际上是'PubDate'。
你想要做的是找到一个'Item'元素,'Name'属性等于'PubDate',然后用'getNodeValue()'函数得到它的值。