article search result of 'XML' : 2

  1. 2011.01.10 [LINQ _ XML] 간략한 LINQ to XML 사용법 (167)
  2. 2010.12.04 [Simple Text Writer V0.1] 간편한 파일 쓰기 어플 (65)

[LINQ _ XML] 간략한 LINQ to XML 사용법


샘플 XML
<?xml version="1.0" encoding="utf-8" ?>
<root>
  <config>
    <Rootposition x="100" y="100"/>
  </config>

  <adData>
    <content name="samsung">
      <keyVisual x="0" y="0">http://www.samsung.com/us/boosted</keyVisual>
      <mov x="100" y="120">SAMSUNG MOV</mov>
    </content>

    <content name="hyundai">
      <keyVisual x="0" y="0">http://www.hyundai.com/kr/main.aspx</keyVisual>
      <mov x="20" y="200">HYUNDAI MOV</mov>
    </content>

    <content name="lg">
      <keyVisual x="20" y="0">http://www.lg.co.kr/</keyVisual>
      <mov x="330" y="300">LG MOV</mov>
    </content>
  </adData>
</root>
 
 
 
C# [Linq _ XML]
 
Created with colorer-take5 library. Type 'csharp'

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Xml.Linq;
using System.Text;
using System.Windows.Forms;

namespace LINQ_XML_test1
{
    public partial class Form1 : Form
    {
        public TRACE.TraceDele trace = new TRACE.TraceDele(TRACE.getTrace);
        public Form1()
        {
            InitializeComponent();
        }

        protected override void OnLoad(EventArgs e)
        {

            //간단��게 xml 문서를 로드 한다.
            XElement xe = XElement.Load("Sample.xml");

            //Descendants는 Child ,  즉 XML.Child( "adData" ).Child( "adData" ) �� 논리로 생각��면 ��겠다.
            //이로서 검출될 item 의 범위를 정한다.
            //
            //select 로 xmlQuery 에 반환될 형식을 정한다.
            //본 코드는 리스트화 하기위해 'SampleResult'라 하였지만
            //익명메서드 꼴인 'new {...}' 을 사용하거나 item을 바로 반환 하여도 동작가능하다.
            var xmlQuery = from item in xe.Descendants("adData").Descendants("content") 
                           select new SampleResult
                           {
                               //Element 일경우 Value를 반환지 않으면 xml 태그가 그대로 반환된다.
                               KeyVisual = item.Element("keyVisual").Value,
                               mov = item.Element("mov").Value,
                               //Attribute 일경우 String 으로 반환기때문에 적절한 타입케스팅이 필요하다.
                               movPosition = new Point((int)item.Element("mov").Attribute("x") , (int)item.Element("mov").Attribute("y"))
                           };

            //결과를 담을 리스트
            List<SampleResult> sList = new List<SampleResult>();
            foreach (var result in xmlQuery)
            {
                sList.Add(result);
                trace(result.mov, "###", result.KeyVisual , "###" ,result.movPosition);
            }
            base.OnLoad(e);
        }
    }

    //샘플리스트 클래스
    class SampleResult
    {
        public String KeyVisual { get; set; }
        public String mov { get; set; }
        public Point movPosition { get; set; }
        public override string ToString()
        {
            return KeyVisual + " " + mov +" " + movPosition;
        }
    }
}
Yamecoder 야매코더_
tags : c#, LINQ, XML
C# 2011.01.10 18:03

[Simple Text Writer V0.1] 간편한 파일 쓰기 어플


간편한 파일 쓰기 어플



client code (AS3)

flush 규칙!


         파일경로(filePath):::내용(content) + "\n"

(':::' 요걸로 파일경로와 내용을 구분합니다.)


ex >> "c:\\sampleFolder\\childFolder\\content.xml"
         +":::
         +xml.toString()
         +"\n";


그냥 자기 컴퓨터에서 돌아가는 로컬용 입니다.(웹은 당연 안돌아가겠죠)
대용량은 테스트 안해봤습니다.
하루 종일 돌려보진 않았습니다.
피드백은 덧글로..
버전업은 할수 있을지. ,, 과연 = =;
옵션도 넣고 하려 했지만.. 일을 줄이기 위해 만드는건데, 이게 더 일이 될것 같아서 딱 필요한것만 구현했습니다.
Yamecoder 야매코더_
C# 2010.12.04 02:35
Powerd by Tistory, designed by criuce
rss