2

문서를 XML로 직렬화하고이를 백엔드로 보내는 브라우저 확장을 작성하고 있습니다.IE : XMLSerializer는 "xmlns : xml"속성을 추가하여 "xml : lang"속성을 직렬화합니다.

serializer가 태그에서 "xml : lang"특성을 충족하면 해당 노드에 "xmlns : xml"네임 스페이스 정의가 추가됩니다 (IE, Edge에서만).

백엔드에서 XML 구문 분석 오류가 발생합니다.

"xmlns : xml"특성을 추가하지 않고 어떻게 serialize 할 수 있습니까?

// We create DOM node by parsing it from string 
// Then we serialize it again 
var content = "'<span id="el" xml:lang="ar" lang="ar">سالم</span>'"; 
var el = new DOMParser().parseFromString(content, 'application/xml'); 

var serialized = new XMLSerializer().serializeToString(el); 
console.log(serialized); 

// <span id="el" lang="ar" xml:lang="ar" xmlns:xml="http://www.w3.org/XML/1998/namespace">سالم</span> 
// Serializing parsed node: attribute 'xmlns:xml' is added, how do I get rid of that? 

답변

-1

최근에 동일한 문제가 발생했습니다. 나는 그것을 방지하기 위해 어떤 방법을 알고 있지만, 문자열을하고 꽤 신뢰할 수 있어야 그것을 제거하기 위해 대체하지 않습니다

:

var cleanedXmlStr = xmlStr.replace(
    /\sxmlns\:xml=['"]http\:\/\/www\.w3\.org\/XML\/1998\/namespace['"]/g, ''); 

는 또 다른 옵션이 같은 타사 시리얼 라이저를 사용하는 것

https://github.com/cburgmer/xmlserializer

관련 문제