XML에서 JSON으로 변환 한 다음 다시 XML로 어떻게 변환 하시겠습니까?
다음 도구는 잘 작동하지만 완전히 일치하지는 않습니다.
전에이 상황에 처한 사람이 있습니까?
답변
이것이 가장 좋은 방법이라고 생각합니다 .XML과 JSON 간 변환
xml.com O’Reilly 사이트 에서 첨부 된 기사 를 읽으십시오 . 여기에서 이러한 변환 관련 문제에 대해 자세히 알아볼 수 있습니다. O’Reilly가 기사를 호스팅하고 있다는 사실은 Stefan의 솔루션에 장점이 있음을 나타냅니다.
답변
https://github.com/abdmob/x2js- 내 라이브러리 ( http://code.google.com/p/x2js/ 에서 업데이트 된 URL ) :
이 라이브러리는 XML에서 JSON (JavaScript Objects)으로 또는 그 반대로 Javascript 변환 함수를 제공합니다. 라이브러리는 매우 작으며 다른 추가 라이브러리가 필요하지 않습니다.
API 함수
- 새로운 X2JS ()-모든 라이브러리 기능에 액세스하기 위해 인스턴스를 작성합니다. 또한 여기에서 선택적 구성 옵션을 지정할 수 있습니다
- X2JS.xml2json-DOM 오브젝트로 지정된 XML을 JSON으로 변환
- X2JS.json2xml-JSON을 XML DOM 오브젝트로 변환
- X2JS.xml_str2json-문자열로 지정된 XML을 JSON으로 변환
- X2JS.json2xml_str-JSON을 XML 문자열로 변환
http://jsfiddle.net/abdmob/gkxucxrj/1/의 온라인 데모
var x2js = new X2JS();
function convertXml2JSon() {
$("#jsonArea").val(JSON.stringify(x2js.xml_str2json($("#xmlArea").val())));
}
function convertJSon2XML() {
$("#xmlArea").val(x2js.json2xml_str($.parseJSON($("#jsonArea").val())));
}
convertXml2JSon();
convertJSon2XML();
$("#convertToJsonBtn").click(convertXml2JSon);
$("#convertToXmlBtn").click(convertJSon2XML);
답변
이 답변은이 기능을 수행하는 데 많은 도움이되었습니다.
function xml2json(xml) {
try {
var obj = {};
if (xml.children.length > 0) {
for (var i = 0; i < xml.children.length; i++) {
var item = xml.children.item(i);
var nodeName = item.nodeName;
if (typeof (obj[nodeName]) == "undefined") {
obj[nodeName] = xml2json(item);
} else {
if (typeof (obj[nodeName].push) == "undefined") {
var old = obj[nodeName];
obj[nodeName] = [];
obj[nodeName].push(old);
}
obj[nodeName].push(xml2json(item));
}
}
} else {
obj = xml.textContent;
}
return obj;
} catch (e) {
console.log(e.message);
}
}
jquery dom / xml 객체를 전달하는 한 다음과 같습니다.
Jquery(this).find('content').eq(0)[0]
여기서 내용은 내가 내 XML을 저장 한 분야이다.
답변
얼마 전 나는 TV Watchlist 앱을 위해이 도구 https://bitbucket.org/surenrao/xml2json 을 썼습니다 . 이것이 도움이되기를 바랍니다.
Synopsys : xml을 json으로 변환 할뿐만 아니라 순환 오류없이 디버그하고 json을 xml로 다시 생성하는 라이브러리도 있습니다. 특징 :-XML을 json 객체로 구문 분석하십시오. json 객체를 xml로 다시 인쇄하십시오. IndexedDB에 xml을 X2J 객체로 저장하는 데 사용할 수 있습니다. JSON 객체를 인쇄하십시오.
답변
개인적 으로이 도구를 추천 합니다 . XML to JSON 변환기입니다.
매우 가볍고 순수한 JavaScript입니다. 의존성이 필요하지 않습니다. 코드에 함수를 추가하고 원하는대로 사용할 수 있습니다.
또한 XML 속성을 고려합니다.
var xml = ‘<person id=”1234” age=”30”><name>John Doe</name></person>’;
var json = xml2json(xml);
console.log(json);
// prints ‘{“person”: {“id”: “1234”, “age”: “30”, “name”: “John Doe”}}’
여기 온라인 데모가 있습니다 !
답변
면책 조항 : fast-xml-parser를 작성했습니다.
빠른 XML 파서는 XML을 JSON으로 또는 그 반대로 변환하는 데 도움이 될 수 있습니다. 예를 들면 다음과 같습니다.
var options = {
attributeNamePrefix : "@_",
attrNodeName: "attr", //default is 'false'
textNodeName : "#text",
ignoreAttributes : true,
ignoreNameSpace : false,
allowBooleanAttributes : false,
parseNodeValue : true,
parseAttributeValue : false,
trimValues: true,
decodeHTMLchar: false,
cdataTagName: "__cdata", //default is 'false'
cdataPositionChar: "\\c",
};
if(parser.validate(xmlData)=== true){//optional
var jsonObj = parser.parse(xmlData,options);
}
JSON 또는 JS 객체를 XML로 구문 분석하려면
//default options need not to set
var defaultOptions = {
attributeNamePrefix : "@_",
attrNodeName: "@", //default is false
textNodeName : "#text",
ignoreAttributes : true,
encodeHTMLchar: false,
cdataTagName: "__cdata", //default is false
cdataPositionChar: "\\c",
format: false,
indentBy: " ",
supressEmptyNode: false
};
var parser = new parser.j2xParser(defaultOptions);
var xml = parser.parse(json_or_js_obj);
답변
xml <-> js 변환을 매우 잘 수행하는 문서화되고 유명한 npm 라이브러리의 좋은 도구는 다음과 같습니다 . 위의 제안 된 솔루션 중 일부 (아마도)와 달리 xml 주석도 변환합니다.
var obj = {name: "Super", Surname: "Man", age: 23};
var builder = new xml2js.Builder();
var xml = builder.buildObject(obj);