Matlab의 API에 익숙하지 않지만 XML 스트림에서 특정 값만 가져 오려면 Pursuit에서 설명한 DOM 메소드를 사용하는 것이 가장 많은 시간과 메모리를 소비한다는 점을 지적합니다. HTTP 연결.
STAX는 Java에서 가장 빠른 구문 분석 방법을 제공하지만 API를 사용하면 Java에 익숙하지 않은 사용자도 특히 다루기 힘들 수 있습니다. 은 Java에서 STAX 파싱의 극히 얇은 추상화 ontop입니다 (면책 조항 : 필자는 저자입니다). 원하는 요소에 대한 경로를 정의한 다음 파서에 스트림을 제공 할 수 있습니다 (이 경우 HTTP 스트림).) 그리고 당신을위한 모든 가치를 끌어 낸다.
// 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);
당신은 할 수 있습니다 :
예를 들어
,의 당신이 실제 자바는 다음과 같이 보일 것입니다 당신이 게시 된 예제 XML 밖으로/루트/상태/루트/볼륨 값을 원하는 가정 해 봅시다 당신이 당신의 HTTP 연결에서 스트림을 처리 할 때 프로그램에 대한 그 초기화 모두는 같은 것을 할 것, 나중에 어떤 시점에서 다음 시작 :
parser.parser(httpConnection.getOutputStream());
등을; 파서가 HTTP 연결의 문자 스트림을 통해 실행될 때 규칙에 정의한 모든 처리기 코드가 호출됩니다.
내가 언급했듯이 Matlab에 익숙하지 않고이 코드를 "Matlab-i-fy"로 바꾸는 적절한 방법을 모르지만 첫 번째 예제에서와 같이 Java API를 사용할 수도 있습니다 직접적으로이 솔루션은 DOM 접근 방식보다 중요하다면 파싱에 더 빠른 메모리와 더 적은 메모리를 사용합니다.
창을 사용하고 있습니까? 그렇다면 .NET 솔루션을 제공 할 수 있습니다. –