여러 개의 큰 (3meg'ish) 파일 중에서 특정 XML 노드 ('진행률'노드)를 읽어야하는 응용 프로그램에서 작업 중입니다 ..XML 특정 요소를 가능한 한 효율적으로 검색하십시오.
내가 TextReader를하고하여 XDocument를 통해,로가TextReader reader = null;
reader = new StreamReader(Filename);
XDocument objDoc = XDocument.Load(reader);
var progressElement = objDoc.Root.Element("Progress");
var lastAccessTime = progressElement.Element("LastTimeAccessed").Value;
var user = progressElement.Element(("LastUserAccessed").Value;
var lastOpCode = progressElement.Element("LastOpCodeCompleted").Value;
var step = progressElement.Element("StepsCompleted").Value;
하여 XDocument 아래에 표시 것을하고 있어요
, 내가 무엇을하기 전에 전체 파일을 메모리로로드, 생각합니다. 그러나, 나는 내가 아는! 필요 없어 노드는 파일의 첫 번째 노드가 될 것입니다.
'찾기'xml 구문의 유형이 있습니까? 먼저 전체 파일을 캐시하지 않는가?
위에서 언급 한 속성 (여기서 끔찍한 무선)에 대해 10 개의 파일을 구문 분석하는 데 15 초가 걸립니다.
XmlReader는 무엇을할까요? "noone xml"API를 좋아하지만, DOM이 아니라 streamin입니다. –
나는 그 해결책을 피하기 위해 노력하고 있지만 그 시작점은 유일한 선택처럼 보입니다. – greggorob64