개발을 할 때에 http로 자료를 송수신할 때 JSON이나 XML을 많이 씁니다.
저는 JSON을 더 선호하긴 하지만 XML도 할 때가 많습니다.

iOS에 기본적으로 탑재되어 있는 NSXMLParser는 쓰기가 넘 힘들더군요..헷갈리기도 하고.
검색해보니 TBXML이란 놈이 있더군요.. 속도도 빠르고 메모리도 적게 먹습니다..
사용방법도 NSXMLParser보다 몇배는 더 간결..

1. 아래 사이트에서 라이브러리를 다운 받습니다.  -- TBXML.zip
http://www.tbxml.co.uk/TBXML/Changes.html

2. 추가할 라이브러리
NSDataAdditions.h
NSDataAdditions.m
TBXML.h
TBXML.m

- frameworks에 libz.dylib 추가

3. 사용방법은
http://www.tbxml.co.uk/TBXML/API.html
API에 정말 한눈에 보이도록 잘 되어 있습니다.
API로는 부족하시다면 1번 사이트에서 TBXML-Books.zip 에 샘플 예제가 있습니다.
 
자바버전도 있으니 참고 하시길..  
저작자 표시
신고

XML 직렬화하는 방법은 http://blog.suromind.com/78 참조

1. XML 예제

  
    admin
    Uaps+82i8GTmJBZbvbkI6Q==
    Administrator
  
  
    admin22
    Uaps+82i8GTmJBZbvbkI6Q==
    Administrator
  
  
    admin333
    Uaps+82i8GTmJBZbvbkI6Q==
    Operator
  
  
    admin777
    Uaps+82i8GTmJBZbvbkI6Q==
    Visitor
  

2. XML 로드
private static List _userInfoList;
/// 
        /// 사용자 정보 로드
        /// 
        /// 
        public static void reqLoadUserInfo(string path) {
            try {
                var s = new XmlSerializer(typeof(UserInfo));
                var fs = new FileStream(path, FileMode.Open);
                TextReader reader = new StreamReader(fs);
                fs.Position = 0;
                var c = (UserInfo)s.Deserialize(reader);
                fs.Close();
                reader.Dispose();

                _userInfoList = c.Items != null ? c.Items.ToList() : new List();
            } catch (Exception ex) {
                Console.WriteLine("Xml Load Error" + ex.ToString());
            }
        }

3. XML 저장
/// 
        /// 사용자 정보 저장
        /// 
        /// 
        public void reqStoreUserInfo(string fileName) {
            if (fileName == "") {
                fileName = Application.StartupPath + @"\Xml\UserInfo.xml";
            }
            var ca = new UserInfo();
            try {
                ca.Items = _userInfoList.ToArray();
                var s = new XmlSerializer(typeof(UserInfo));
                var fs = new FileStream(fileName, FileMode.Create);
                TextWriter writer = new StreamWriter(fs);
                fs.Position = 0;
                s.Serialize(writer, ca);
                fs.Close();
            } catch (Exception ex) {
                Console.WriteLine("XML Save Error : " + ex.ToString());
            }
        }

4. 사용
private void Test() {
            foreach (UserInfoUser item in 클래스명._userInfoList) {
                Console.WriteLine(item.Power);
                Console.WriteLine(item.UserId);
                Console.WriteLine(item.Passwd);
                Console.WriteLine(item.userNo);
            }
        }
저작자 표시
신고
XML을 직렬화 하여 사용하니 엄청 편하네요


xsd라는 툴을 통해서 xsd파일 및 cs 파일을 추출해 낼 수 있습니다.
1. 먼저 XML을 만드시고 아래처럼 xsd 명령을 치면 xsd파일이 생성 됩니다. (ex : xsd xxx.xml)
   단 xsd.exe가 환경변수에 없는지 일반 콘솔창에서는 안되니 Visual Studio 명령 프롬프트로 실행하세요..여기선 먹혀있는듯





2. xsd가 생성 되셨으면 그다음 명령으로 cs파일을 추출합니다.
  xsd xxx.xsd /c

3. xsd파일과 cs파일이 생성 되셨으면 xsd파일을 visual studio 프로젝트에 드래그앤 드랍합니다.
   cs파일은 알아서 연결되니 복사안하셔도 됩니다.

이러면 객체로 접근이 가능하니 편하게 쓸 수 있을겁니다

사용 방법은 아래 링크 참조
http://blog.suromind.com/86


저작자 표시
신고

DTD :  IE 렌더링 방식을 어느정도 개선.최근은 XML(XHTML)이 대세.
XHTML중에서도 Transitional과 Strict가 있는데 후자의 경우 엄격합니다.
저도 개인적으로 Strict를 사용합니다.


1) HTML 2.0 표준 문서 형식
<!DOCTYPE html PUBLIC "=//IETF//DTD HTML 2.0//EN">

2) HTML 3.2 표준 문서 형식
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

3) HTML 4.01 표준 문서 형식
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

4) XHTML 1.0 표준 문서 형식
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

5) XHTML 1.1 표준 문서 형식
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">


웹표준 문서 구조
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko-KR">
<head>
<title> ... </title>
</head>
<body>
...
</body>
</html>


DOCTYPE 코드 구분
일반형식(Transitional) : HTML 4.01 Transitional 예전에 있었거나 없어진 태그도 지원함
엄격한형식(Strict) : HTML을 엄격하게 적용 해야 한다


출처 : http://paran.tistory.com/316

저작자 표시
신고