2014-09-24 66 views
0

Im使用JAVA和XML。以下是XML文件,IM與合作:使用JAVA和XML檢查指定的XML元素是否具有使用JAVA的特定名稱

<TestCase> 
    <SelectedDataTableNames name="SearchData"> </SelectedDataTableNames> 

    <Open page="hsbc" ms="5000" /> 
    <Click object="hsbc.Personal_Link" /> 
    <Click object="hsbc.CreditCard_tab" /> 
    <Call businessComponent="Global.Verify_Search"> 
     <Param name="HotelName_Param" value="@SearchData_link" /> 
    </Call> 
    <CheckElementPresent object="hsbc.Img_Hotel_logo" Identifire="Hotel_Name_PARAM:@SearchData_ResultHotelName" fail="true" customErrorMessage="Searched hotel name is not present in the page." /> 
</TestCase> 

什麼我的Java代碼,這樣做多遠獲取所有指定的父(這裏「的TestCase」)下的元素,並必須根據不同的元素做不同的功能名稱。我發現很難的是如何檢查指定的元素是否包含名稱。我無法使用「getElementsByTagName」來檢查IF,因爲它會在所有情況下都顯示爲true,因爲存在該元素。這裏是代碼,我已經評論了檢查是否應該發生的地方。

File fXmlFile = new File("SearchPromotions.xml"); 
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
Document doc = dBuilder.parse(fXmlFile); 
doc.getDocumentElement().normalize(); 

Element docEle = doc.getDocumentElement(); 
NodeList nl = docEle.getChildNodes(); 

if (nl != null && nl.getLength() > 0) { 
    for (int i = 0; i < nl.getLength(); i++) { 
     if (nl.item(i).getNodeType() == Node.ELEMENT_NODE) { 
      Element ele = (Element) nl.item(i); 

      if(//to check whther the current element is "Click"){ 
       System.out.println(ele); 
      } 
     } 
    } 
} 
+2

您可以使用XSD驗證檢查。你試過這個嗎? – DiogoSantana 2014-09-24 05:14:16

+0

不,我看看它。感謝信息 – Vithushan 2014-09-24 05:20:02

回答

1

可以使用ele.getNodeName()這會給你ClickOpen即當前節點名稱,然後你可以將在如果

+1

感謝哥們。這樣可行。 :) – Vithushan 2014-09-24 05:21:22

相關問題