java - 如何从java中的<dc>标签中提取数据?

标签 java epub

我目前正在尝试提取标签元素< dc:title >来自 Java 的 epub。但是,我尝试使用

doc.getDocumentElement().getElementsByTagName("dc:title")); 

它只显示2nd element :com.sun.org.apache.xerces.internal.dom.DeepNodeListImpl 。我想知道如何提取< dc:tittle >

这是我的代码:

File fXmlFile = new File("file directory");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();

System.out.println("1st element :" +  doc.getElementsByTagName("dc");
System.out.println("2nd element :" + doc.getDocumentElement().getElementsByTagName("dc:title"));

系统输出:

1st element : com.sun.org.apache.xerces.internal.dom.DeepNodeListImpl@4f53e9be
2nd element :com.sun.org.apache.xerces.internal.dom.DeepNodeListImpl@e16e1a2

添加了示例数据

<dc:title>
  <![CDATA[someData]]>
</dc:title>
<dc:creator>
  <![CDATA[someData]>
</dc:creator>
<dc:language>someData</dc:language>

最佳答案

方法getElementsByTagName(String)返回匹配元素的列表(注意复数's')。然后,您需要指定要使用的元素(例如通过使用 .item(index) 访问 Node 实例)。这样,您就可以在该 Node 对象上使用 getNodeValue()

已编辑:由于 CDATA 元素,请使用 Node.getTextContent():

NodeList elems = doc.getElementsByTagName("dc:title");
Node item = elems.item(0);
System.out.println(item.getTextContent());

关于java - 如何从java中的<dc>标签中提取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48376690/

相关文章:

java - 如何检测两个移动形状重叠? (算法)

java - 如何知道Java类使用什么Base64编码变体?

java - 如何使用 Java 正则表达式在 Android 上验证用户名和密码?

html - 有什么方法可以从 EPUB 中检测 iBooks 中的深色主题是否处于事件状态?

JavaScript 不适用于 ICS

java - 电子邮件 Intent 问题。无法选择电子邮件选项

java - Jersey Web 服务返回 204 无内容

html - 在 epub 中使用 HTML 与 CSS 进行格式化

java - 如何使用 java.util.zip 制作 epub

android - 在 android 中渲染 epub 书?