1

私はまだこのテーマについてあまり知らないので、私の最終目標につながる提案を受け入れています...

  1. WebサービスからXML文字列を受け取ります
  2. LINQで使用できるC#クラスに文字列をロードしたい
  3. そのクラスでLINQを使用して、XML内のすべての「someentity」インスタンスの配列を抽出できるようにしたいと思います。

これは、someentityの例で作成したサンプルXMLです。

<replydata>
    <someentity>
        <role id="1234" roletype="2" />
        <history length="24" accessstr="http://someurl" />
    </someentity>
    <someentity>
        <role id="1235" roletype="2" />
        <history length="30" accessstr="http://someurl2" />
    </someentity>
    ... keep repeating for a while
</replydata>

これは可能ですか?もしそうなら、誰かが簡単な例を提供したり、それを見つけるための適切な場所に私を導くことができますか?

4

2 に答える 2

2

あなたはこのようにそれを行うことができます:

var responseString =
    @"<replydata>
        <someentity>
            <role id=""1234"" roletype=""2"" />
            <history length=""24"" accessstr=""http://someurl"" />
        </someentity>
        <someentity>
            <role id=""1235"" roletype=""2"" />
            <history length=""30"" accessstr=""http://someurl2"" />
        </someentity>
    </replydata>";
var response = XElement.Load(new StringReader(responseString));
var someentitys = response.Elements("someentity");
foreach(var e in someentitys) {
    Console.WriteLine(
        "Role: {0}, access: {1}"
    ,   e.Element("role").Attribute("roletype")
    ,   e.Element("history").Attribute("accessstr")
    );
}
于 2012-04-18T16:35:49.307 に答える
1

ここで探しているクラスはXDocument

http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx

XDocumentそのメソッドを使用してXML文字列からを作成し、Parse()LINQを使用してそのドキュメントをクエリできます。

LINQ機能のデモを行う記事は次のとおりです

http://broadcast.oreilly.com/2010/10/understanding-c-simple-linq-to.html

于 2012-04-18T16:44:49.983 に答える