2014-09-24 67 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

相关问题