Я вообще не знаком с API-интерфейсом Matlab, но я хотел бы указать, что использование метода DOM, описанного в Pursuit, будет занимать больше времени/памяти, если вы хотите, чтобы определенные значения выводились из потока XML, который вы возвращаете HTTP-соединение.
Хотя STAX предоставит вам быстрый подход к анализу на Java, использование API может быть громоздким, особенно если вы не знакомы с Java. Вы можете использовать SJXP, который представляет собой чрезвычайно тонкую абстракцию на основе анализа STAX в Java (отказ от ответственности: я автор), который позволяет вам определять пути к элементам, которые вы хотите, затем вы даете парсеру поток (ваш HTTP-поток в этом случае), и он вытаскивает все значения для вас.
В качестве примера, предположим, что вы хотите значения/корень/состояние и/корень/объем выхода из примеров XML вы в курсе, фактическая Java будет выглядеть примерно так:
// Create /root/state rule
IRule stateRule = new DefaultRule(Type.CHARACTER, "/root/state") {
@Override
public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
System.out.println("State is: " + text);
}
}
// Create /root/volume rule
IRule volRule = new DefaultRule(Type.CHARACTER, "/state/volume") {
@Override
public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
System.out.println("Volume is: " + text);
}
}
// Create the parser with the given rules
XMLParser parser = new XMLParser(stateRule, volRule);
Вы можете сделать все эти инициализации на старте программы, то в какой-то момент позже, когда вы обрабатываете поток от вашего соединения HTTP, вы могли бы сделать что-то вроде:
parser.parser(httpConnection.getOutputStream());
или тому подобное; то весь код вашего обработчика, который вы определили в своих правилах, будет вызван, поскольку синтаксический анализатор проходит через поток символов из HTTP-соединения.
Как я уже говорил, я не знаком с Matlab и не знаю правильных способов «Matlab-i-fy» этого кода, но, похоже, из первого примера вы можете более или менее просто использовать Java API прямо в этом случае это решение будет быстрее и будет значительно меньше памяти для синтаксического анализа, если это важно, чем подход DOM.
Вы используете окна? Если да, то я могу предложить вам решение .NET. –