使用java从XML文件读取值
我无法读取分支号码。使用java从XML文件读取值
XML:
<NODE>
<EMPLOYEENUMBER EMPLOYEENUMBER="1334350"/>
<BranchNumber BRANCHCUSTOMERNUMBER ="400823482"/>
<BR AfterImage="51" BeforeImage=""/>
<DEALNO="6698398" BeforeImage=""/>
<SEQ AfterImage="0" BeforeImage=""/>
<TRAD AfterImage="PHSS" BeforeImage=""/>
<VDATE AfterImage="2017-04-07 00:00:00.0" BeforeImage=""/>
<CUST AfterImage="10075222" BeforeImage=""/>
<BROK AfterImage="" BeforeImage=""/>
<BROKCCY AfterImage="UGX" BeforeImage=""/>
<BROKAMT AfterImage="0.0000" BeforeImage=""/>
<PHONCI AfterImage="0" BeforeImage=""/>
<PORT AfterImage="CSPO" BeforeImage=""/>
<COST AfterImage="30000003" BeforeImage=""/>
<ODATE AfterImage="2017-03-02 00:00:00.0" BeforeImage=""/>
<DEALDATE AfterImage="2017-03-02 00:00:00.0" BeforeImage=""/>
<DEALTIME AfterImage="06:12" BeforeImage=""/>
<IOPER AfterImage="RAMU" BeforeImage=""/>
<VOPER AfterImage="RAMU" BeforeImage=""/>
<BROKCDATE AfterImage="" BeforeImage=""/>
<CUSTCDATE AfterImage="" BeforeImage=""/>
<PHONECDATE AfterImage="" BeforeImage=""/>
<DEALTEXT AfterImage="" BeforeImage=""/>
<PHONETEXT AfterImage="" BeforeImage=""/>
<PS AfterImage="S" BeforeImage=""/>
<PRODCODE AfterImage="XYZ" BeforeImage=""/>
</NODE>
的Java:
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
System.out.println("\nCurrent Element :" + nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println(" EMPLOYEENUMBER: " + eElement.getAttribute("EMPLOYEENUMBER"));
System.out.println("BRANCHCUSTOMERNUMBER : " + eElement.getAttribute("BRANCHCUSTOMERNUMBER"));
}
}
如果我读 'BRANCHCUSTOMERNUMBER' 它是空的。
您可以尝试下面的代码。
import java.io.File;
public class ReadXMLFile {
public static void main(String argv[]) {
try {
File fXmlFile = new File("logs/file.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
System.out.println("Main Tag:" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("SubTag");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
System.out.println("\nCurrent Element :" + nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("Data 1 : "+ eElement.getAttribute("ElementTagName1"));
System.out.println("Data 2: "+ eElement.getElementsByTagName("ElementTagName2").item(0).getTextContent());
System.out.println("Data 2 : "+ eElement.getElementsByTagName("ElementTagName3") .item(0).getTextContent());
System.out.println("Data 4 : "+ eElement.getElementsByTagName("ElementTagName4").item(0).getTextContent());
System.out.println("Data 5 : "+ eElement.getElementsByTagName("ElementTagName5") .item(0).getTextContent());
}
}
} catch (Exception e) {
e.printStackTrace();
}}}
1)标签名称是不相关的问题没有属性的XML。的确,只是复制粘贴这段代码而没有任何解释实际上是没有帮助的,而且2)代码格式化极差 –
是Sharon, 代码对于程序员来说是可读的和可理解的,他可以根据自己的需要进行修改。抱歉格式不正确。我只是贴了它。 –
如果标题是“您可以尝试下面的代码”而没有任何进一步的exaplanation,那么预计代码将“按原样”解决问题,但事实并非如此。你可以花费很少的精力来调整代码以适应特定的问题。你可以花费很少的精力来展示这个不相关的代码将如何帮助OP。你可以尽一切努力来格式化代码。你没有。我花了我更多的时间来写这个评论,而不是你粘贴这个“答案”。我只希望我可以两次下决心。 –
你所得到的输出是正确的,因为您在其*享有哪些是有名称为“BRANCHCUSTOMERNUMBER” –