복붙노트

[JQUERY] 자바 스크립트를 사용하여 JSON (다시)로 변환 XML

JQUERY

자바 스크립트를 사용하여 JSON (다시)로 변환 XML

해결법


  1. 1.나는 이것이 최선의 하나라고 생각 : XML 및 JSON 간 변환

    나는 이것이 최선의 하나라고 생각 : XML 및 JSON 간 변환

    난 당신이 계몽 찾을 생각이 변환과 문제의 세부 사항에 들어가는 xml.com 오라일리 사이트에 첨부 된 기사를 읽어 보시기 바랍니다. 오라일리 기사를 호스팅하고 있다는 사실은 스테판의 솔루션은 장점이 있음을 표시해야합니다.


  2. 2.https://github.com/abdmob/x2js - 내 자신의 라이브러리 (http://code.google.com/p/x2js/에서 업데이트 된 URL) :

    https://github.com/abdmob/x2js - 내 자신의 라이브러리 (http://code.google.com/p/x2js/에서 업데이트 된 URL) :

    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);
    

  3. 3.이 대답은 나에게이 기능을 만들기 위해 많은 도움이 :

    이 대답은 나에게이 기능을 만들기 위해 많은 도움이 :

    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을 저장 한 분야이다.


  4. 4.내 TV 관심 목록에 앱이 도구 https://bitbucket.org/surenrao/xml2json을 썼다 얼마 뒤,이 역시 도움이되기를 바랍니다.

    내 TV 관심 목록에 앱이 도구 https://bitbucket.org/surenrao/xml2json을 썼다 얼마 뒤,이 역시 도움이되기를 바랍니다.


  5. 5.나는 개인적으로이 도구를 추천 할 것입니다. 그것은 JSON 변환에 XML입니다.

    나는 개인적으로이 도구를 추천 할 것입니다. 그것은 JSON 변환에 XML입니다.

    그것은 매우 가볍고 순수 자바 스크립트입니다. 그것은 종속성을 필요로하지 않는다. 당신은 단순히 코드에 기능을 추가하고 당신이 원하는대로 사용할 수 있습니다.

    또한 고려 사항으로 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”}}’
    

    여기에 온라인 데모입니다!


  6. 6.면책 조항 : 나는 빠른 XML 파서를 작성했습니다

    면책 조항 : 나는 빠른 XML 파서를 작성했습니다

    빠른 XML 파서는 반대 JSON과 반대에 XML을 변환하는 데 도움이 될 수 있습니다. 다음은 예이다;

    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);
    }
    

    당신은 XML로 JSON 또는 JS 객체를 구문 분석하려면

    //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);
    

  7. 7.여기에 XML을 수행하는 문서화하고 아주 유명한 NPM 라이브러리에서 좋은 도구는 <-> JS 변환 아주 잘 : 다른 일부 (아마도 모든) 제안 된 솔루션 위의, 또한 XML 주석을 변환합니다.

    여기에 XML을 수행하는 문서화하고 아주 유명한 NPM 라이브러리에서 좋은 도구는 <-> JS 변환 아주 잘 : 다른 일부 (아마도 모든) 제안 된 솔루션 위의, 또한 XML 주석을 변환합니다.

    var obj = {name: "Super", Surname: "Man", age: 23};
    
    var builder = new xml2js.Builder();
    var xml = builder.buildObject(obj);
    

  8. 8.6 개 간단한 ES6 라인에서 :

    6 개 간단한 ES6 라인에서 :

    xml2json = xml => {                                                                                                                                                     
      var el = xml.nodeType === 9 ? xml.documentElement : xml                                                                                                               
      var h  = {name: el.nodeName}                                                                                                                                          
      h.content    = Array.from(el.childNodes || []).filter(e => e.nodeType === 3).map(e => e.textContent).join('').trim()                                                  
      h.attributes = Array.from(el.attributes || []).filter(a => a).reduce((h, a) => { h[a.name] = a.value; return h }, {})                                                 
      h.children   = Array.from(el.childNodes || []).filter(e => e.nodeType === 1).map(c => h[c.nodeName] = xml2json(c))                                                    
      return h                                                                                                                                                              
    }  
    

    테스트와 에코 "xml2json_example ()"| 노드 -r xml2json.es6 https://github.com/brauliobo/biochemical-db/blob/master/lib/xml2json.es6에서 소스와


  9. 9.또한 txml을 사용할 수 있습니다. 그것은 간단 오브젝트와 캐릭터 라인 화 만들어진 DOM으로 구문 분석 할 수 있습니다. 결과에서 내용이 정돈됩니다. 공백으로 원래의 포맷하기 때문에 손실됩니다. 하지만이 작게하다 HTML에 아주 좋은 사용할 수있다.

    또한 txml을 사용할 수 있습니다. 그것은 간단 오브젝트와 캐릭터 라인 화 만들어진 DOM으로 구문 분석 할 수 있습니다. 결과에서 내용이 정돈됩니다. 공백으로 원래의 포맷하기 때문에 손실됩니다. 하지만이 작게하다 HTML에 아주 좋은 사용할 수있다.

    const xml = require('txml');
    const data = `
    <tag>tag content</tag>
    <tag2>another content</tag2>
    <tag3>
      <insideTag>inside content</insideTag>
      <emptyTag />
    </tag3>`;
    
    const dom = xml(data); // the dom can be JSON.stringified
    
    xml.stringify(dom); // this will return the dom into an xml-string
    

    면책 조항 : 나는 txml의 저자, ​​자바 스크립트에서 가장 빠른 XML 파서입니다.


  10. 10.난 그냥 XML의 단일 값을 얻을 수 xmlToJson을 사용했다. 나는 다음은 훨씬 더 쉽게 일을 발견합니다 (XML은 한 번 발생하면 ..)

    난 그냥 XML의 단일 값을 얻을 수 xmlToJson을 사용했다. 나는 다음은 훨씬 더 쉽게 일을 발견합니다 (XML은 한 번 발생하면 ..)

    XML을 =하자 '<사람>'+ ' 762,384,324 '+ ' 행크 '+ ''+ ''; {getXmlValue = 기능 (캐릭터, 키)를 보자 (str.substring 반환 str.lastIndexOf ( '<'+ + 키를 '>') + ( '<'+ + 키를 '>'). 길이 str.lastIndexOf ( "') ); } 경고 (getXmlValue (XML, 'FIRSTNAME')); // 행크를 다시 제공


  11. 11.난 당신이 라이브러리를 설치하고 무슨 일이 일어나고 있는지 뒤에 논리를 이해하지 않으려는 경우 정규식에 따라 재귀 함수를 만들었습니다 :

    난 당신이 라이브러리를 설치하고 무슨 일이 일어나고 있는지 뒤에 논리를 이해하지 않으려는 경우 정규식에 따라 재귀 함수를 만들었습니다 :

    CONST xmlSample = '<태그> 태그 콘텐츠 다른 콘텐츠 콘텐츠 내부 '; CONSOLE.LOG (parseXmlToJson (xmlSample)); parseXmlToJson 기능 (XML) { CONST JSON = {}; xml.matchAll의 (CONST 입술 용 (/ (] *) *>) ((? (<\ 1)) *) (?!.? <\ / \ 1>) | <(\ * w () : \ S *) * \ /> / GM)) { CONST 키 입술 = [1] || 입술 [3]; CONST 입술 값 = [2] && parseXmlToJson (입술 [2]); JSON [키] = (? (&& Object.keys 값 (값) .length) 값 : 입술 [2]) || 없는; } JSON 반환; }

    각 루프에 대한 정규식 설명 :

    정규식 여기에 어떻게 작동하는지 확인할 수 있습니다 : https://regex101.com/r/ZJpCAL/1

    주 : 케이스 JSON 정의되지 않은 값을 가지는 키를 가지고, 그것은이 제거되고있다. 나는 9 번째 줄의 끝에서 널 (null)을 삽입 한 이유입니다.


  12. 12.클라이언트 측이 모든 시나리오에서 잘 작동하지 않는 가장 좋은 방법은 서버 측을 사용 할 수 있습니다. 나는 자바 스크립트를 사용하여 온라인 JSON으로 XML과 XML을 JSON 변환 구축을 위해 노력하고는 모든 시나리오에서 작동하지 않는 나는 거의 불가능 느꼈다. 궁극적으로 나는 ASP.MVC에 Newtonsoft를 사용하여 서버 측을하고 끝났다. 다음은 온라인 계산기 http://techfunda.com/Tools/XmlToJson

    클라이언트 측이 모든 시나리오에서 잘 작동하지 않는 가장 좋은 방법은 서버 측을 사용 할 수 있습니다. 나는 자바 스크립트를 사용하여 온라인 JSON으로 XML과 XML을 JSON 변환 구축을 위해 노력하고는 모든 시나리오에서 작동하지 않는 나는 거의 불가능 느꼈다. 궁극적으로 나는 ASP.MVC에 Newtonsoft를 사용하여 서버 측을하고 끝났다. 다음은 온라인 계산기 http://techfunda.com/Tools/XmlToJson

  13. from https://stackoverflow.com/questions/1773550/convert-xml-to-json-and-back-using-javascript by cc-by-sa and MIT license