Linq TO 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 (var aTab allTabs で)
          {
              Results.Text =
                  「タブ オーダー: " + aTab.Attribute(「TabOrder」).値 + " |" +
                  「タブのラベル: " + aTab.Attribute(「TabLabel」).値 + " | " +
                  「SharePointContentType: " + aTab.Attribute(「SharePointContentType」).値 + " | " +
                  「AdditionalConstraints: " + aTab.Attribute(「AdditionalConstraints」).値 + 「r」;
          }

上記で, 変数"theXmlToParse"文字列変数です。, しかし、負荷を使用することができます。() あなたのような場合、ストリームのメソッド.

[結果] ラベルを web フォームでこのコードを実行するときは, それはこのように見える:

SNAGHTML11cd2e7c

私はまだ、検索結果を並べ替える方法を働いていません。, 私は、将来のブログの記事を任せ.

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

メッセージを残してください

あなたのメールアドレスが公開されることはありません. 必須フィールドは、マークされています *