Sample tag in XML file:
<AccountDetailsList>
<AccountDetails>
<Accountnumber>123/<Accountnumber>
</AccountDetails>
<PersonalDetailsList>
<age>29</age>
<name>Pankaj</name>
<gender>Male</gender>
<role>Java Developer</role>
</PersonalDetailsList>
<AccountDetails>
<Accountnumber>456/<Accountnumber>
</AccountDetails>
<PersonalDetailsList>
<age>35</age>
<name>Julie</name>
<gender>Female</gender>
<role>Dotnet Developer</role>
</PersonalDetailsList>
</AccountDetailsList>
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document =documentBuilder.parse(file);
NodeList nodeList1 = document.getElementsByTagName("Accountnumber");
for (int k = 0; k < nodeList1.getLength(); k++) {
Node accountnode = nodeList1.item(k); //to read all the tags from account number
if (accountnode != null) {
String acc = document.getElementsByTagName("Accountnumber").item(k).getTextContent();
System.out.println("Account number:" + " " + acc);
NodeList nodeList2 = document.getElementsByTagName("age");
for (int j = 1; j < nodeList2.getLength(); j++) {
Node age_node = nodeList2.item(j);
if (age_node != null) {
String age = document.getElementsByTagName("age").item(j).getTextContent()
String name = document.getElementsByTagName("name").item(j).getTextContent()
String gender = document.getElementsByTagName("gender").item(j).getTextContent().
String role = document.getElementsByTagName("role").item(j).getTextContent()
System.out.println("Age:" + age);
System.out.println("Name:" + name);
System.out.println("Gender:" + name);
System.out.println("Role:" + name);
}} }}
账号:123
年龄:29
姓名:Pankaj
性别:男性
角色:Java开发人员
账号:456
年龄:35
姓名:Julie
性别:女性
角色:Dotnet开发人员
注意:问题中的XML已经更改。以下内容基于原始XML,添加了根标记,如答案末尾所示。
在从DOM树中提取信息时,需要使用XML结构。
基本上,不要迭代
元素,而是迭代文档的
元素,然后对那些元素
对象使用GetElementsByTagName(...)
方法,而不是对文档
对象使用GetElementsByTagName(...)
方法来扫描嵌套元素。
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.parse(file);
NodeList accountDetailsNodes = document.getElementsByTagName("AccountDetails");
for (int i = 0; i < accountDetailsNodes.getLength(); i++) {
Element accountDetailsElem = (Element) accountDetailsNodes.item(i);
String accountnumber = accountDetailsElem.getElementsByTagName("Accountnumber").item(0).getTextContent();
System.out.println("Account #" + (i + 1) + ":");
System.out.println(" Account number: " + accountnumber);
NodeList personalDetailsNodes = accountDetailsElem.getElementsByTagName("PersonalDetails");
for (int j = 0; j < personalDetailsNodes.getLength(); j++) {
Element personalDetailsElem = (Element) personalDetailsNodes.item(j);
String age = personalDetailsElem.getElementsByTagName("age").item(0).getTextContent();
String name = personalDetailsElem.getElementsByTagName("name").item(0).getTextContent();
String gender = personalDetailsElem.getElementsByTagName("gender").item(0).getTextContent();
String role = personalDetailsElem.getElementsByTagName("role").item(0).getTextContent();
System.out.println(" Person #" + (j + 1) + ":");
System.out.println(" Age: " + age);
System.out.println(" Name: " + name);
System.out.println(" Gender: " + gender);
System.out.println(" Role: " + role);
}
}
Account #1:
Account number: 123
Person #1:
Age: 29
Name: Pankaj
Gender: Male
Role: Java Developer
Account #2:
Account number: 456
Person #1:
Age: 35
Name: Julie
Gender: Female
Role: Dotnet Developer
<Root>
<AccountDetailsList>
<AccountDetails>
<Accountnumber>123</Accountnumber>
<PersonalDetailsList>
<PersonalDetails>
<age>29</age>
<name>Pankaj</name>
<gender>Male</gender>
<role>Java Developer</role>
</PersonalDetails>
</PersonalDetailsList>
</AccountDetails>
</AccountDetailsList>
<AccountDetailsList>
<AccountDetails>
<Accountnumber>456</Accountnumber>
<PersonalDetailsList>
<PersonalDetails>
<age>35</age>
<name>Julie</name>
<gender>Female</gender>
<role>Dotnet Developer</role>
</PersonalDetails>
</PersonalDetailsList>
</AccountDetails>
</AccountDetailsList>
</Root>
问题内容: 如何使用python以相反的顺序读取文件?我想从最后一行读取文件。 问题答案: 在Python 3中:
我正在进行rpc调用签名,为了使服务器接受我们的API调用,我们需要使用RSAPrivateKey对http mime头进行签名。服务器端代码用JAVA编写,并使用“SHA256withRSA/PSS”验证签名。 我的问题是我从JAVA和c openssl代码得到了不同的签名哈希。所以问题是,openssl是否有可能生成与JAVA相同的签名哈希? JAVA代码: c代码:
问题内容: 如何使用dom parser java在xml中解析相同的名称标签? 我有以下要使用Java中的dom解析器解析的xml文件。 问题答案: 但我建议使用XPath
问题内容: 给定上面的xml文件,我将如何检索标签内所有标签的列表?我想获取“名称”的所有值以及标签之间的数字值。像这样: 问题是我不知道会有多少个附加标签。可能没有,也可能有20。我需要某种方法来对它们全部进行计数,然后删除信息。 问题答案: 这是一个使用JDK执行查询的示例。它假定变量包含您的XML文档。
问题内容: 我有事。URL中的XML: 我想同时显示两个PhonebookEntry值(名字,姓氏,地址)。当前,我的代码仅显示John Smith的PhonebookEntry(最后一个条目)。这是我的代码。 ParsingXML.java ExampleHandler.java ParsedExampleDataSet.java 我是Java和android开发的新手,在此先感谢您的帮助!:)
我有一个亚马逊S3的postdata预签名网址。我想用它在一个空手道功能文件上传一个文件(说:pdf) 下面是一个示例Curl请求,我需要使用空手道POST请求执行它 我从服务器得到一个响应(具有预签名),并在功能文件中使用下面的代码 我试过了 我看到空手道日志的请求格式是:18:29:08.560[ForkJoinPool-1-worker-3]DEBUG-com。凭直觉。空手道-请求: 我看到