2016-12-08 6 views
0

나는 nodeJs의 초보자이지만 이미 좋아합니다. 다음 data.xml 파일이 있습니다.nodejs의 2 개의 끝점으로 정의 된 파일의 일부분을 읽음

<data> 
<student> 
    <age>16</age> 
    <name>Bill</name> 
</student> 
<teacher> 
    <age>33</age> 
    <name>Priyanka</name> 
</teacher> 
</data> 

이 파일에서 학생의 세부 정보를 읽고 싶습니다. fs.readStream, fs.readFile을 살펴 보았지만 일부는 그렇지 못했습니다. Readline은 해결책이 될 수 있습니다 (확실하지 않습니다).하지만 XML 형식이 제대로 지정되지 않은 경우 어떻게해야합니까?

미리 감사드립니다.

답변

1

잘못된 xml을 구문 분석 할 수 없으므로 수정하십시오. 그런 다음 노드 모듈 (npm install xml2js를 실행하여 설치)이 코드 xml2js 사용할 수 있습니다 : 당신이 XML을 수정하지 않을 경우, 코드는 물론 예외가 발생합니다

var fs= require('fs'); 
var parseString = require('xml2js').parseString; 

fs.readFile('./data.xml', 'utf8', function read(err, data) { 
    if (err) { 
     throw err; 
    } 

    parseString(data, {trim: true}, function (err, result) { 
     if (err){ 
      throw err; 
     } 
     console.dir(result); 
    }); 
}); 

(교사의 연령의 닫기 태그 무효) . XML 파일의 인코딩을 확인해야합니다. 간단하게 utf8을 사용했습니다.

+0

감사합니다. @RLaaa. 정말 고맙습니다. 데이터가 json 파일 인 경우 옵션은 무엇입니까? – rookie

+2

json이 더 쉽습니다. 물론 xml 파싱 모듈을 사용하지 않고 json을 객체로 파싱하고 싶을 것입니다. parseString 호출을 var obj = JSON.parse (data)로 바꿉니다. json이 유효하지 않으면 구문 분석이 실행을 중지시킬 수 있습니다. 여기를 참조하십시오 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse – RLaaa