gpt4 book ai didi

java - 用JAVA解析XML,拉出特定的一条数据

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

我不确定我的问题是否准确。我相信两个问题可能会有所帮助:

我一直在研究解析文件 - 特别是 xml。

我发现了许多教程和许多风格的技术。

大多数教程都有一个简单的 xml 文件开始,其中包含姓名、电话号码等。

我的 2 个问题:

1) 如何提取/显示特定 .例如,如果我只想显示 <FirstNames> 我该如何(在 Java 中)执行以下操作:

loop

If <tag> = “FirstName” then name_variable = data in between tags);

or

If <tag> = “FirstName” then System.out.printf(“ the first name is %s\n”,name_variable);

end loop

2)假设我只查找名字的第二个实例,在一些教程/示例中我已经了解了如何显示循环内的所有数据。我试图将数据设置为等于“数组”字符串,然后在循环外显示数据,但已被删除。底线是,如何存储已解析的 XML 数据的索引(数组)片段以供以后使用或传递给以后的代码?

<company>
<Name>My Company</Name>
<Executive type = "CEO">
<LastName>Smith</LastName>
<FirstName>Jim</FirstName>
<street>123 Main Street</street>
<city>Mytown</city>
<state>TN</state>
<zip>11234</zip>
</Executive>
<Executive type = "OEC">
<LastName>Jones</LastName>
<FirstName>John</FirstName>
<street>456 Main Street</street>
<city>Gotham</city>
<state>TN</state>
<zip>11234</zip>
</Executive>
</company>

这是我拼凑在一起的一些代码,我从 XML 中获取了一些数据,但我还没有弄清楚如何存储在已解析数据的索引片段中。

package dom_parsing_in_java;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.NamedNodeMap;
//import com.sun.org.apache.xerces.internal.parsers.DOMParser;

public class DOM_Parsing_In_JAVA {

public static void main(String[] args) {
// TODO code application logic here
String file = "test2.xml";

if(args.length >0){
file = args[0];

}// end If

try{
//DOMParser parser= new DOMParser();
DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File(file));

//Document document = parser.getDocument();

Element root = document.getDocumentElement();
System.out.println(root.getTagName());

NodeList node_list = root.getElementsByTagName("Executive");


//Node comp = getNode("Company",root);

int i;


for(i = 0; i<node_list.getLength();i++){
Element department = (Element)node_list.item(i);

System.out.println(department.getTagName());
System.out.println("name "+document.getElementsByTagName("Name").item(0).getTextContent());
System.out.println("name "+document.getElementsByTagName("FirstName").item(i).getTextContent());
System.out.printf(" Lastname: %s%n ", document.getElementsByTagName("LastName").item(i));
System.out.printf(" Lastname: %s%n ", department.getAttribute("LastName"));
System.out.printf(" FirstName: %s%n",department.getAttribute("FirstName"));
//System.out.printf(" elements by Tag %s%n",department.getElementsByTagName("testTag"));
//System.out.printf(" staff: %s%n",countStaff(department));
}

}
catch(Exception e){
e.printStackTrace();

}//end catch
}
}

最佳答案

关于java - 用JAVA解析XML,拉出特定的一条数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15093315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com