gpt4 book ai didi

java - 如何获取xml中的标签名称

转载 作者:行者123 更新时间:2023-12-02 02:25:52 27 4
gpt4 key购买 nike

enter image description here

上面是我的 XML...

如何获取ReportDatePeriodEndingDateFileDate等元素标签的名称?

List<String> stkCompFinaciallist = new ArrayList<String>();

File fXmlFile = new File(filename);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);

// optional, but recommended
// read this - http://stackoverflow.com/questions/13786607/normalization-in-dom-parsing-with-java-how-does-it-work
doc.getDocumentElement().normalize();

out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getDocumentElement().getElementsByTagName("BalanceSheetEntity");
out.println("length=" + nList.getLength());

for (int temp = 0; temp < nList.getLength(); temp++) {

Node nNode = nList.item(temp);

out.println("\nCurrent Element :" + nNode.getNodeName());
//out.println("node name:"+ nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {

Element eElement = (Element) nNode;


if (eElement.getElementsByTagName("ReportDate").getLength() > 0) {
stkCompFinaciallist.add(eElement.getElementsByTagName("ReportDate").item(0).getFirstChild().getNodeValue());
out.println("ReportDate : " + eElement.getElementsByTagName("ReportDate").item(0).getFirstChild().getNodeValue());
} else {
stkCompFinaciallist.add("");
}

if (eElement.getElementsByTagName("PeriodEndingDate").getLength() > 0) {
stkCompFinaciallist.add(eElement.getElementsByTagName("PeriodEndingDate").item(0).getFirstChild().getNodeValue());
out.println("PeriodEndingDate : " + eElement.getElementsByTagName("PeriodEndingDate").item(0).getFirstChild().getNodeValue());



} else {
stkCompFinaciallist.add("");
}

if (eElement.getElementsByTagName("FileDate").getLength() > 0) {
stkCompFinaciallist.add(eElement.getElementsByTagName("Start").item(0).getFirstChild().getNodeValue());
out.println("FileDate : " + eElement.getElementsByTagName("FileDate").item(0).getFirstChild().getNodeValue());
} else {
stkCompFinaciallist.add("");
}

以上编码即可获取Node Value。因为标签名称超过200个标签,所以我打算先获取标签名称,然后使用for循环来获取值。而且这个标签还有另一个用途。

请问如何获取标签名称?我只需要 BalansheetEntity 的标签名称。

谢谢并致以最诚挚的问候莎朗

最佳答案

你可以在这里使用Xpath吗?如果您的 XML 结构始终包含标签 - BalansheetEntity,您可以使用 XPAth 获取 BalansheetEntity 标签的所有子节点。

此外,最好使用 XSD 来验证 xml 结构。

问候阿卜杜勒

关于java - 如何获取xml中的标签名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47776010/

27 4 0