일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 태그를 입력해 주세요.
- javascript
- Winform
- windows
- ASP
- 프로시저
- aspnet
- 비주얼스튜디오
- microsoft
- 윈폼
- c#
- 자바스크립트
- Excel
- 단축키
- 엑셀
- replace()
- 마이크로소프트
- CONVERT()
- 리포팅서비스
- MSSQL
- IIS
- oracle
- 윈도우
- 이클립스
- jQuery
- SSRS
- MS
- attr()
- DataGrid
- 오라클
- Today
- Total
DJ메탈짱™의 Free Style
[C#] LINQ, XML파싱, xml to LINQ, foreach,같은Depth 동일 Element반환, null, Exception 본문
[C#] LINQ, XML파싱, xml to LINQ, foreach,같은Depth 동일 Element반환, null, Exception
뽀&쏭 2015. 12. 31. 13:16
아래 예제는 <body> Element 기준으로 <aaa>,<bbb> Element 값을 반환하는 방법인데…
ElementAt(1) 메소드를 통해 연속적으로 동일하게 있는 <bbb> Element가 하나면 index 예외오류가 발생함.
그럴 때 사용하는 메소드는 ElementAt à ElementAtOrDefault() 을 사용하면 해결됨.
<root>
<body>
<aaa>정보</aaa>
<bbb>1</bbb>
<bbb>2</bbb>
</body>
<body>
<aaa>정보</aaa>
< bbb>3</bbb>
</body>
</root>
var xmlRlt = (from xml in xmlDoc.Descendants("body")
select new
{
columnCharacteristic1= (string)xml.Element("aaa").Value,
//만약 ElemenetAt(1)이 없다면 공백 반환.
columnCharacteristic2= (string)xml.Elements("bbb").ElementAt(1) // ElementAt(1) 사용시 index 오류 발생하여 à ElementAtOrDefault(1) 로 수정하면 해당 Element가 없는 경우 null을 반환하여 에러가 발생하지 않음.
});
foreach (var rlt in xmlRlt)
{
colCharacteristic= rlt.aaa != null ?rlt.aaa : "";
colCharacteristic+= rlt.bbb != null ?rlt.bbb : "";
}
'일(job) > MS(Microsoft)' 카테고리의 다른 글
[C#, Winform, 윈폼] Infragistics NetAdvantage Grid, 헤더숨김(ColHeaders) (0) | 2016.01.07 |
---|---|
[C#] 현재 실행중인 메소드(method)명 가져오기, MethodBase (0) | 2015.12.31 |
[C#] LINQ, XML파싱, xml to LINQ, foreach,같은Depth 동일 Element반환 (0) | 2015.12.31 |
[C#] LINQ, XML파싱, xml to LINQ, Properties.Resources,foreach (0) | 2015.12.31 |
[C#] Microsoft .NET Framework 3.5용 Microsoft Chart Controls (0) | 2015.12.31 |