Q&A

  • 왕초보 xml관련해서 질문드립니다 ㅠㅠ;;;;;;;
모두 안녕하셔요~ 또 오랜만에 질문드립니다 ㅠㅠ;;
하루종일 검색해서 이것저것 해봤는데요.. ㅠㅠ;;;
xml도 첨이구 ㅡㅡ;;

검색하다가 어느분이 질문 올리신건데요..
<?xml version="1.0" encoding="UTF-8" ?>
<성적>
<타율>
  <No1 name="1번타자">
    <상반기>
      <p0 AVG="0.28"></p0>
      <p1 AVG="0.23"></p1>
      </상반기>
  </No1>
  <No2 name="2번타자">
.........
</타율>
</성적>


이런 xml문서가 있을때
  <No1 name="1번타자">
    <상반기>
      <p0 AVG="0.28"></p0>
      <p1 AVG="0.23"></p1>  
이부분에서 "0.28","0.23" 요 값만 가져올려면 어찌해야하나요 ㅠㅠ;;;

바본가봐요 ㅠㅠ;; 아무리 검색하고 해봐도 잘 안되요 ㅠㅠ;;
제발 답변부탁드립니다 ㅠㅠ;;;

태풍이 올라온다내요.. 다들 비피해없기를 빌께요~
6  COMMENTS
  • Profile
    하늘사랑 2009.08.07 03:31
    글올리고 하나보니.. 다시질문드릴께요 ㅠㅠ;;

    <p0 AVG="0.28"> 이부분에서 0.28 이란 값이없고 <p0 AVG=""> 이런식으로 null이면..

    ......
    xx := xnchild.attributenodes.get(i).nodevalue; <= 요부분에서 에러가 납니다 ㅠㅠ;;
    ......

    값이없는데 가져올려고보니 에러가 나는것같은데요.. null값은 그냥 공백으로 가져올수없는지요.. ㅠㅠ;;

    고수님 부탁드립니다 ㅠㅠ;;;
  • Profile
    하늘사랑 2009.08.07 19:20
    에구.. 답글이 없내요 ㅠㅠ;; 그냥 except처리해버렸는뎅.. ㅠㅠ;;

    또한가지 <p0 AVG="0.28"> 이부분에서 숫자값만 수정할수있는지요

    부탁드리겠습니다 ㅠㅠ;;;
  • Profile
    구창민 2009.08.07 23:21
    안녕하세요..

    XMLDocument 를 사용하셨다 가정하구 말씀드릴께요~

    p0 노드까지 구해내셨다면, 아래처럼 하면 구해지고요..

    변수 := Node.Attributes['AVG'];

    노드값을 변경하고 싶으시면 그냥 대입하시면 됩니다.

    Node.Attributes['AVG'] := '값';

    그럼 즐거운 프로그래밍 하세요~


  • Profile
    하늘사랑 2009.08.10 20:11
    답변 감사드립니다 ^^
    가져오는거 하고 수정하는것도 다 처리했습니다 ^^;;;
    글을 늦게 봤내요 ㅠㅠ;;;;

    그럼 죄송한데요
    <상반기> => 밑에있는 Node p0,p1을 아예 삭제할려면 어찌해야하는지요..

    제가 해봤는데용..
    <No1 name="1번타자">
    <상반기>
    <p0 AVG="0.28"></p0>
    <p1 AVG="0.23"></p1>
    </상반기> 여기서 두 노드를 삭제하면

    <No1 name="1번타자">
    </상반기> 이렇게.. 상위 노드인 <상반기> 까지 지워지내요 ㅠㅠ;;
    소스는 밑에 붙여놨습니다 ㅠㅠ 고수님~ 부탁드립니다 ㅠㅠ;;;;;

    procedure XMLNodeClear(XMLNode: IXMLNode);
    var
    Loop, cnt, i, a : integer;
    Nodenm, _s : String;
    DelNode : IXMLNode;
    begin
    if XMLNode.NodeType <> ntElement then Exit;

    Nodenm := XMLNode.NodeName;

    if Nodenm = '상반기' Then
    begin
    cnt := XMLNode.ChildNodes.Count;

    if cnt > 0 then
    begin
    // for I := 0 to cnt - 1 do <<= for문은 하나 안하나.. 마찬가지입니다 ㅠㅠ;;
    // begin
    // _s := DelNode.NodeName;
    XMLNode.ChildNodes.Clear;
    // end;
    XMLDocument.SaveToFile('C:\test.xml');
    end;
    end;

    for Loop := 0 to XMLNode.ChildNodes.Count - 1 do
    XMLNodeClear(XMLNode.ChildNodes.Nodes[Loop]);

    end;
  • Profile
    구창민 2009.08.11 00:25
    안녕하세요..
    <상반기> 노드까지 찾으셨다면..
    for 문은 사용하실 필요없고요..
    단순히 아래 문장을 호출 하시면 됩니다.
    Node.ChildNodes.Clear;
    그럼 즐거운 프로그래밍 하세요..
  • Profile
    하늘사랑 2009.08.11 01:56
    답변감사합니다 ^^
    문제해결했습니다 정말 감사드립니다 ^^
    • 하늘사랑
      2009.08.11 01:57
      문제 해결했습니다 모두 감사드립니다 ^^
    • 김동원
    • 2009.08.10 18:42
    • 2 COMMENTS
    • /
    • 0 LIKES
    • KDDG_Apine
      2009.08.12 04:04
      정확히 이해가 가지 않습니다. 프로시져는 반복문으로 처리 하기 위해 만드는 것이고 같은 것이라면 ...
    • 김동원
      2009.08.14 18:13
      답변 감사드립니다. 추후에 자세히 올리도록 하겠습니다.꾸벅
    • 백록화
      2009.08.11 01:13
      보기 를 할경우엔 줄바꿈이 그대로 보여지고... 검색해서 보여줄땐 줄바꿈이 없이 보여준다는 말씀이신...
    • 구창민
      2009.08.11 02:25
      안녕하세요.. 엄밀히 말하면 이미지를 넣는것이 아니고.. 포인터를 기억하는 것이겠지요.. 추가시는 ...
    • 이은주
      2009.08.11 19:38
      ^ 사용하지 않은 이런 형태로도 포인터를 기억하게 하는 것인가 보군요. 감사합니다.
    • 장용석
    • 2009.08.07 20:23
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2009.08.07 21:03
      2007 입니다~ www.devtools.co.kr 로 문의 해보세요 ㅋ
    • 이정욱
      2009.08.07 21:03
      혹시나 새로 프로젝트를 하는거라면 당연히 2009 를 추천하구요... 2010도 좋다는 소문이 있습니다.
    • 바람
      2009.08.07 23:43
      Serial Component를 잘 사용해 보지 않아서 에러 이유는 모르겠지만 제가 기억하고 있는 MS-Dos S...
    • 타마마
      2009.08.12 00:36
      간단한 문제가 아니라 설명드리기 난해하긴 한데.. 해당 컴포넌트가 CreateFile을 사용했는가, DeviceIo...
    • 이경원
    • 2009.08.07 19:04
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2009.08.07 23:14
      except 구문속을 아래처럼 수정하시고, 에러 내용을 로그로 남겨 확인해보세요.. except on E : Ex...
    • 하늘사랑
      2009.08.07 03:31
      글올리고 하나보니.. 다시질문드릴께요 ㅠㅠ;; <p0 AVG="0.28"> 이부분에서 0.28 이란 값이없...
    • 하늘사랑
      2009.08.07 19:20
      에구.. 답글이 없내요 ㅠㅠ;; 그냥 except처리해버렸는뎅.. ㅠㅠ;; 또한가지 <p0 AVG="0.28"> ...
    • 구창민
      2009.08.07 23:21
      안녕하세요.. XMLDocument 를 사용하셨다 가정하구 말씀드릴께요~ p0 노드까지 구해내셨다면, 아래...
    • 하늘사랑
      2009.08.10 20:11
      답변 감사드립니다 ^^ 가져오는거 하고 수정하는것도 다 처리했습니다 ^^;;; 글을 늦게 봤내요 ㅠㅠ;;;...
    • 구창민
      2009.08.11 00:25
      안녕하세요.. 노드까지 찾으셨다면.. for 문은 사용하실 필요없고요.. 단순히 아래 문장을 호출 하시...
    • 하늘사랑
      2009.08.11 01:56
      답변감사합니다 ^^ 문제해결했습니다 정말 감사드립니다 ^^
    • 최용일
      2009.08.04 20:12
      WM_USER + 100로 검색해서 메세지핸들러를 찾으시고 디버깅을 해보세요. 쩝~ 질문하신것을 보니 책한권...
    • 초보자
      2009.08.04 22:09
      책을 보라면 API관련책을 말씀하시는건지요? 가르쳐주는 사람없이 혼자 해나가려니 힘이드네요~
    • 최용일
      2009.08.03 22:12
      기존 연결을 끊고 해보세요.
    • 델델
      2009.08.12 02:43
      myDB.Database1.KeepConnection :=false; 이 부분이 기존 연결을 끊는거 아닌가요? ㅠㅠ
    • 최용일
      2009.08.12 17:51
      전혀 아닌데요... Database1.Connected := False;
    • 오경용
      2009.07.30 10:26
      LongDateFormat := 'yyyy-MM-dd'; LongTimeFormat := 'hh:mm:ss'; ... ... if Fields[i].F...
    • 윤영훈
      2009.08.09 22:15
      오오- 감사합니다. TStringList로 자르고 오후가 나오면 +12하는 등으로 해서 복잡하게 만들었던 부분이...
    • 유경민
    • 2009.07.30 03:54
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2009.08.05 18:40
      확인눌렀을때 위의 if문을 전부 확인할수 있게 하고 싶습니다. <-- 의미파악 불명 뭘 확인을 누...
    • 유경민
      2009.08.26 06:25
      ㅎㅎ 죄송해요 답변이 늦었죠 어떻게 쪼물딱 거리니 되더라고요 답변 감사합니다^^
    • 여운병
      2009.07.31 00:24
      어떤 오류인지 알아야 답변 가능할 것 같은데요? 소스코드라도...
    • 박찬석
      2009.07.31 00:55
      uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Men...
    • 여운병
      2009.07.31 01:42
      uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, M...
    • 소울해커
      2009.08.05 18:47
      델파이에서 필드를 불러올때 인덱스 값으로 불러오시면서 Suju 테이블의 필드 수를 초과해서 지정하신...
    • 유경민
    • 2009.07.29 11:43
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2009.08.05 18:42
      전역 키보드 후킹에 대하여 공부하셔야 될 겁니다. 그런데 뭘 만드시기 위해 고런 형태가 필요하신지....
    • 유경민
      2009.08.07 01:26
      출결 프로그램 만들고 있습니다. 컴퓨터가 2대면 상관없는대 출결프로그램 구동시 다른작업을 할수 없기...
    • 임대순
      2009.07.27 23:37
      흠...레코드카운더면 될꺼 같은데요...이상 초보의 답변있었습니다.
    • 백록화
      2009.07.28 20:45
      A로 시작하는거 Select 회원코드필드 from tbl_name where 회원코드필드 like 'A%'; max 함수로 ...
    • 정락문
      2009.07.28 22:22
      백록화님이 하신 것 처럼... 모방을 하면 조건절에 이렇게 들어가도 될 듯 해요. Select 회원코드필드 ...
    • phono
      2009.07.29 07:30
      일단 파이어버드는 인터베이스랑 거의 같은 sql을 쓸텐데.. , 일단 지금 제가 사용하고 있는 db가 ms-...
    • 윤영훈
      2009.07.29 19:02
      사실은 방법을 못찾다가 A, B, C를 구분하는 새로운 필드를 하나 더 만들어서 검색하고 있었는데, 좋은 ...
    • 얼씨구
    • 2009.07.25 19:47
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정락문
      2009.07.28 22:29
      델파이 코딩으로 하려면, 제일 단순한 방법은 2개의 DB에 접근해서 처리하는 거죵. 1. 10분 주기로 프...