1
我需要知道我的邏輯是否正確,因爲我是新來玩XML節點的。 這是我的代碼。 JAVA通過在java中搜索從xml節點獲取值
try{
File inputFile = new File("C:\\Users\\luenwong\\Desktop\\decoded.txt");
Scanner scanner = new Scanner(new File("C:\\Users\\luenwong\\Desktop\\decoded.txt"));
String text = scanner.useDelimiter("\\A").next();
scanner.close();
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document docum = dBuilder.parse(inputFile);
docum.getDocumentElement().normalize();
NodeList nList = docum.getElementsByTagName("row");
System.out.println("------------------------------");
for(int temp=0; temp<nList.getLength();temp++){
Node nNode = nList.item(temp);
System.out.println("\n Current Element :" + nNode.getNodeName());
if(nNode.getNodeType() == Node.ELEMENT_NODE){
Element eElement = (Element) nNode;
String here = eElement.getElementsByTagName("col").item(1).getTextContent();
if(here.indexOf("AB02") == 0)
{
// InputStream is = new ByteArrayInputStream(text.getBytes());
// Document doc = PositionalXMLReader.readXML(is);
// Node test = doc.getElementsByTagName("col").item(0);
// System.out.println("Student roll no : " + eElement.getElementsByTagName("col").item(0).getTextContent());
// System.out.println("Line number: " + test.getUserData("lineNumber"));
}
}
}
}catch (Exception e){
e.printStackTrace();
}
我的XML文件
<?xml version="1.0" encoding="UTF-8"?>
<mapping-table>
<col-def name="Location Description" type="nocase"/>
<col-def name="Centre Code" type="nocase"/>
<col-def name="Location Code" type="nocase"/>
<col-def name="Status" type="nocase"/>
<row>
<col>TAMAN TUN DR ISMAIL</col>
<col>AB02</col>
<col>CSTDI</col>
<col>active</col>
</row>
<row>
<col>KUALA LUMPUR CITY CENTRE (KLCC)</col>
<col>AA02</col>
<col>I-CTRKLCC</col>
<col>active</col>
</row>
</mapping-table>
我所試圖做的是我希望鍵入「AA02」,我能得到的結果爲「吉隆坡城市中心(KLCC) 」。 我的邏輯是,我會查找行號,然後使用行號爲-1來獲得結果。但我不知道它是否能夠通過使用行號找到xml節點。
真的行。我可以有更多有關xPath的信息嗎?因爲我不太瞭解這行代碼。 String.format(「/ mapping-table/row [col ='%s']/col [1]」,code)。也許你能向我解釋一下嗎?謝謝。我會將你的答案標記爲最佳答案。 –
我在答案的最後解釋了(在NB之前),它不夠清楚? –
等於是。我必須進入確切的行並始終獲得第一列? –