Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как разобрать файл xml в моем тестовом примере junit selenium с помощью eclipse

Автор вопроса: powernitОтветов: 3

Как разобрать файл xml в моем тестовом примере junit selenium с помощью eclipse, я хочу получить данные из этого файла и вставить их в формы, используя мой тестовый пример selenium RC.

javaxmlseleniumjunitselenium-rc

Ответы

Ответ 1 · рейтинг 1 · add-semi-colons

Взгляните на dom4j, и это мой подход. Я реализовал фреймворк selenium + Junit, и все входные данные находятся в формате XML. Поэтому я устанавливаю структуру ввода xml. Итак, если вы идете в этом направлении, я бы посоветовал вам определить, какой формат/структура xml.

Пример:

<seleniumtest>

    <!-- Selenium Test Parameters -->

    <Parameter name="inputValue">
        <value>myvalue</value>
    </Parameter>

    <Parameter name="mypassword">
        <value>password</value>
    </Parameter>

    <Parameter name="users">
        <value>user1</value>
        <value>user2</value>
    </Parameter>

</seleniumtest>

One you finalize on the structure you can start writing a parse and expose the data into rest of the test or just for a one test.

Вот начало вашего синтаксического анализатора xml. Создайте класс и прочитайте конструктор в файле xml,

public class XMLFileParser {

    private static final Logger log = Logger.getLogger(XMLFileParser.class.getName());

    private Document document;

    /**
     * Method will construct a Document Object from the given InputStream
     * @param readIn The input stream to read the document.
     */
    public XMLFileParser(InputStream readIn) {
        SAXReader reader = new SAXReader();
        try {
            document = reader.read(readIn);
        }catch (DocumentException ex) {
            log.error("Error when attempting to parse input data file", ex);
        }
    }

    /**
     * Write a method to iterate over the nodes to actually parse the xml file.
     */
    public HashMap<String, Object> parseInput(HashMap<String, Object> params) {
        Element rootElement = document.getRootElement();
        for(Iterator iter = rootElement.elementIterator("Parameter"); iter.hasNext();) {
                // This where you should write your parse logic,
             }

        return params;
    }

Это не обязательно должна быть хэш-карта, но это то, что я хотел сделать, вы можете заставить этот метод возвращать все, что вы пожелаете, на основе вашей структуры.

Развлекайся;

Ответ 2 · рейтинг 2 · Vaman Kulkarni

Java имеет встроенный механизм обработки XML. Он поддерживает как парсеры DOM, так и SAX. Вы можете взглянуть на http://download.oracle.com/javaee/1.4/tutorial/doc/JAXPIntro.html

Ответ 3 · рейтинг 1 · Will

Взгляните на http://dom4j.sourceforge.net/.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы