Утверждение в Xml - PullRequest
       13

Утверждение в Xml

0 голосов
/ 24 мая 2018

Я хочу найти определенный ключ в XML-файле и хочу установить действительное значение с ожидаемым значением этого конкретного ключа.

например: это XML-файл, и я хочу заявить, что студентидентификатор 493 или нет, в этом типе сценария я могу использовать xmlUnit?или дайте другие способы сделать это легко с помощью Java.

<?xml version = "1.0"?>
<class>
    <student id="393">
        <name>Rajiv</name>
        <age>18</age>
    </student>
    <student id="493">
        <name>Candie</name>
        <age>19</age>
    </student>
</class>

Ответы [ 2 ]

0 голосов
/ 24 мая 2018
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.File;

File fXmlFile = new File("file.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
NodeList nList = doc.getElementsByTagName("student");

    System.out.println("----------------------------");
List studentList = new ArrayList();
    for (int temp = 0; temp < nList.getLength(); temp++) {

        Node nNode = nList.item(temp);

        if (nNode.getNodeType() == Node.ELEMENT_NODE) {

            Element eElement = (Element) nNode;
             studentId = eElement.getAttribute("id"));
            //In above we will get studentID one by one . you can add         into one list and finally check expected studentid is present or not.
             studentList.add(studentId);
          }
}

Мы включим всех студентов в studentList, затем проверим, присутствует ли конкретный студент или нет.

0 голосов
/ 24 мая 2018

Библиотека xmlunit хороша для обработки всего файла и сопоставления, но для отдельных значений «родной» XPath лучше ИМХО.Например:

import org.w3c.dom.Document;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;

    Document xmlDocument = ...
    XPath xPath = XPathFactory.newInstance().newXPath();
    String expression = "/student[1]/@id";
    String actualValue = xPath.evaluate(expressiong, xmlDocument);
    assertEquals( "493", actualValue );

См. Введение в XPath с Java для примеров.

...