XML
posted by 준치 2018. 2. 1. 15:43

xml 을 json 으로 변환하거나 json을 xml 변환해서 봐야 할때가 있다.


그럴때 사용하면 좋은 웹.....


www.utilities-online.info/xmltojson/#.WnK2fkxuIpg


참고해서 사용하면 좋을듯....


오늘도 화이팅!!!

XML
posted by 준치 2012. 7. 20. 18:17

아~ 오늘은 xml 때문에 문제가 생겼다..ㅠㅠ

FTP로 xml파일을 받아서 정보를 읽어서 무언가 해야하는데 어랏!!! 정보는 제대로 인것같은데...

오류가 나고 Windows service 를 멈추게 만들었다... 젠장 뭐냐...

데이터를 확인하던 도중..ㅠㅠ &&&&&&&&&&& 이게 문제였다..ㅠㅠ

XML을 읽은 도중....뻑!! 뻑!!!

해결방법은 특수문자 처리~

& 를 & 로 수정

저것 말고도 다른것들도....

<, >, &는 XML tag 표시와 entity를 표시하는 XML 예약문자로, XML 문서에 그대로 사용할 수 없다.
 
< (less-than sign) &lt;
> (greater-than sign) &gt;
& (ampersand) &amp;

참고 : http://www.kamje.or.kr/special.html

까먹지 말고 알아두자!! 오늘도 화이팅!!!

 

 

XML
posted by 준치 2011. 10. 6. 13:55


별도에 다른 시스템과 인터페이스를 하는데 xml data를 받기로 했다. 왜냐 쓰기 쉬우니까..

근데 이런... &nbsp; 처음에 이게 문제가 되었다..ㅠㅠ

저 문제는 그냥 문자열을 변환 시키면 문제해결.. 별로 어렵지 않았다....

하지만 변환 이후에도 xml 형태가 제대로 열리지 않고 에러가 발생하였다.

알고보니 xml node 안에 값중에 & 가 들어가 있는것이 아닌가.. 우띠...

& 를 어떻게 해야될까.. 내가한 작업은 동일하게 문자열 변환...Replace를 선택했다.. 쉬우니까..ㅋㅋ

근데 어떻게 하면 & 로 제대로 변환 할까.. 별거 아닌데 겁나 찾았다.

해결 방법

xmltxt = xmltxt.Replace("&nbsp;", "");
xmltxt = xmltxt.Replace("& ", "&amp;");

&nbsp; 는 "" 공백으로..
& 는 &amp; 로...

잘 나온다..ㅎㅎㅎ

XML
posted by 준치 2008. 11. 6. 12:08


XmlDocument doc = new XmlDocument();
                doc.LoadXml("<test></test>");

                XmlNode node = doc.DocumentElement.SelectSingleNode("test");

                XmlElement elem = doc.CreateElement("Root");
                elem.SetAttribute("id", "id다");
                elem.InnerText = "내용이다";

                node.AppendChild(elem);

                이렇게 하면 <test><root id="id다">내용이다</root></test>

XML
posted by 준치 2008. 8. 25. 16:34
XML에서는 아래 5가지의 특수문자를 사전정의하고 있다.
Name Character Code
quot " &quot;
amp & &amp;
apos ' &apos;
lt < &lt;
gt > &gt;


만약, 별도의 XML API를 사용하지 않는다면 해당 캐릭터가 String으로 XML의 value 또는 context text로 포함되어 있을 경우 XML 파서에서는 에러를 리턴하게 된다. 따라서 XML Write할 때 위의 특수문자를 Code로 바꾸어 주어야 한다.

다음은 Java를 이용하여 해당 문자를 Code로 바꾸어주는 TDD 소스이다.

/**
 * XML에서 사용할 수 없는 특수문자를 변경해 준다.
 */
package com.mediachorus.pepbox.encoding;
import java.nio.CharBuffer;
import junit.framework.TestCase;
/**
 * @author SangHyup LEE
 * @version 1.0
 *
 */
public class ToXMLStringTest extends TestCase {
 public void testToXMLString() {
  String name = "\"한&글'을<포>함";
 
  CharBuffer cb = CharBuffer.wrap(name);
  String xmlString = "";
  while ( cb.hasRemaining() ) {
   // System.out.println(cb.get() + " ");
   char tempChar = cb.get();
  
   if ( tempChar == '"' ) {
    xmlString += "&quot;";
   } else if ( tempChar == '&' ) {
    xmlString += "&amp;";
   } else if ( tempChar == '\'' ) {
    xmlString += "&apos;";
   } else if ( tempChar == '<' ) {
    xmlString += "&lt;";
   } else if ( tempChar == '>' ) {
    xmlString += "&gt;";
   } else {
    xmlString += tempChar;
   }
  }
  // System.out.println("xmlString : " + xmlString);
 
  assertEquals("&quot;한&amp;글&apos;을&lt;포&gt;함", xmlString);
 }
}



위의 testToXMLString() 메소드의 구현 부분을 static 메소드를 사용하여 구현해 주면 된다. 예를 들면 다음과 같다.

public class ConvertUtil {
 public static String toXMLString(String input) {
  String xmlString = "";
 
  CharBuffer cb = CharBuffer.wrap(input);
  while ( cb.hasRemaining() ) {
   char tempChar = cb.get();
  
   if ( tempChar == '"' ) {
    xmlString += "&quot;";
   } else if ( tempChar == '&' ) {
    xmlString += "&amp;";
   } else if ( tempChar == '\'' ) {
    xmlString += "&apos;";
   } else if ( tempChar == '<' ) {
    xmlString += "&lt;";
   } else if ( tempChar == '>' ) {
    xmlString += "&gt;";
   } else {
    xmlString += tempChar;
   }
  }
 
  return xmlString;
 }
}