카테고리 아카이브: LINQ

LINQ 사용 하 여 XML 구문 분석

다음은 LINQ를 사용 하 여 일부를 구문 분석을 빠른 예  XML과 달콤한에서, 달콤한 거기 특성.

XML을 구문 분석할 같습니다.:

<?xml 형식 버전 = "1.0" 인코딩 = "은 utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout 이름 = "xyzzy">
      <탭>
        <TabOrder 탭 = "1" TabLabel = "x" SharePointContentType = "" AdditionalConstraints = "ac1" />
        <TabOrder 탭 = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </탭>
    </PageLayout>

    <PageLayout 이름 = "xyzzy2">
      <탭>
        <TabOrder 탭 = "100" TabLabel = "x" SharePointContentType = "" AdditionalConstraints = "ac1" />
        <TabOrder 탭 "101 =" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <TabOrder 탭 = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </탭>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

위의 구문 분석 하 여 런타임 시 일부 탭을 구축 하 고 싶습니다.  내 탭 페이지 레이아웃에 따라 다릅니다.  내 페이지 레이아웃의 이름을 "xyzzy2" 이면 다음 나 싶어 탭 100, 101 그리고 103 (탭 <PageLayout 이름 = "xyzzy2">).

그것 않는 LINQ 같습니다.:

var allTabs =
              p에서
                  XElement.Parse(theXmlToParse).
                 
요소("PageLayouts").
                  요소("PageLayout")
              어디 (p.Attribute("이름").Value.Equals("xyzzy2"))
              p.Elements m("탭").요소("탭")
              m 선택;

          Results.Text = 문자열.빈;

          foreach (Alltabs에서 var aTab)
          {
              Results.Text =
                  "탭 순서: " + aTab.Attribute("TabOrder").값 + " |" +
                  "라벨 탭: " + aTab.Attribute("TabLabel").값 + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").값 + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").값 + "r";
          }

위의, 변수 "theXmlToParse"는 문자열 변수가입니다., 하지만 부하를 사용할 수 있습니다.() 원한다 면 stream 메서드.

"결과"는 레이블을 web form에이 코드를 실행 하는 경우, 그것은 이것 처럼 보인다:

SNAGHTML11cd2e7c

아직 결과 정렬 하는 방법을 밖으로 일을 하지 않았습니다., 그래서 미래의 블로그 게시물에 대 한 그을 떠날 거 야.

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin