gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 06:04:15 25 4
gpt4 key购买 nike

我目前正在尝试提取标签元素< 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/

25 4 0