1

私はこのXMLを持っています、

<MM>
    <Bank>
        <Result>
            <url>http://192.168.1.12/pay/api/abc</url>
            <param name="type">FUND</param>
            <param name="tid">175219</param>
            <param name="ticket">DiZfWMQxL5Qfasfsdfsdfsqweqwe</param>
            <param name="stage">1</param>
        <Result>
    <Bank>
</MM>

要素の値を取得する方法を知っていますurl

Dim qryurl = From c In doc.Descendants("Result") _
             Select c.Element("url").Value

paramXML からタグ値を特定するにはどうすればよいですか?

4

2 に答える 2

0
from x in c.Elements("param")
select new {
               type = x.Select(y => y.Attribute("name").Value == "type").Value,
               tid = x.Select(y => y.Attribute("name").Value == "tid").Value,
               ticket = x.Select(y => y.Attribute("name").Value == "ticket").Value,
               stage = x.Select(y => y.Attribute("name").Value == "stage").Value,

           }

構文エラーがある可能性があります。しかし、それは値を取得するためのロジックです。このトピックについては、たとえばここで確認できます。

于 2012-12-07T09:28:37.163 に答える
0

私はこのようにすることを検討します:

Dim getParam As Func(Of XElement, String, String) =
    Function (e, t)
        Return e _
            .Elements("param") _
            .Where(Function (x) x.Attribute("name") = t) _
            .Select(Function (x) x.Value) _
            .FirstOrDefault()
    End Function

Dim Query = _
    From c In doc.Descendants("Result") _
    Select New With 
    { 
        .URL = c.Element("url").Value,
        .type = getParam(c, "type"),
        .tid = getParam(c, "tid"),
        .ticket = getParam(c, "ticket"),
        .stage = getParam(c, "stage")
    }

getParam関数をクエリに直接展開することもできますが、それは非常に長くなります。を使用すると、Func確実に短縮されます。

上記のコードとサンプル XML を指定した結果は次のとおりです。

クエリ結果

于 2012-12-07T11:10:35.133 に答える