2014-03-05 1 views
0

DOM 객체가 나타내는 XML 텍스트를 가져올 때마다 .serializeToString() 메서드를 사용했습니다. 예 : 그러나DOM 객체에 .toString() 메서드가있는 경우 dom serializer를 사용해야하는 이유

var dom = require('xmldom').DOMParser; 
var s = require('xmldom').XMLSerializer; 

myNode = new dom().parseFromString('<greet>Hello!</greet>', 'text/xml'); 
console.log(new s().serializeToString(myNode, 'text/xml'); 

, 내가 실수로 모든 노드 객체가 아니라, 분명히, 시리얼 정확히 같은 일을 반환하는 .toString() 방법이 있음을 발견했다.

console.log(myNode.toString()); 

시리얼 라이저를 통과하는 시점은 무엇입니까? 모범 사례입니까? 중요한 차이점이 있습니까 (예 : '<'과 같은 특수 문자의 처리)? 내가 알아야 할 다른 것은 무엇입니까?

감사합니다.

답변

0

짧은 대답은 노드에서이 코드 만 사용하는 경우 node.toString() 또는 new XMLSerializer().serializeToString(node)을 자유롭게 사용할 수 있다는 것입니다. 그러나 toString 방법은 비표준이며 브라우저에는 존재하지 않습니다. DOMParser 스펙은 구문 분석/직렬화를 몇 가지 방법으로 지정하며 toString은 그 중 하나가 아닙니다. 당신이 XMLDOM에서 볼 수 있듯이, 그것은 serializeToString에 불과 별칭 :

https://github.com/jindw/xmldom/blob/master/dom.js#L911

는 또한 두 번째 text/xml을 필요가 없습니다 serializeToString이, 두 번째 인수를하지 않습니다.