0

私のXMLは以下のようなものです

<Exchange>
    <Rec>
        <data headers="Currency">USD</data>
        <data headers="Value">1.0609</data>
    </Rec>
    <Rec>
        <data headers="Currency">GBP</data>
        <data headers="Value">0.6694</data>
    </Rec>
    <Rec>
        <data headers="Currency">INR</data>
        <data headers="Value">54.123</data>
    </Rec>
</Exchange>

asp.netでXMLLinqを使用して、値(1.0609)をCurrency(USD)に依存して取得する必要があります

4

2 に答える 2

0
var xml = XElement.Load("XMLFile1.xml");

string curr = "USD";
var number = (from node in xml.Elements("Rec").Elements("data")
    where (string)node.Attribute("headers") == "Currency" && node.Value == curr
    select node into data
    from value in data.Parent.Elements("data")
    where (string)value.Attribute("headers") == "Value"
    select (double)value).FirstOrDefault();
于 2012-04-13T15:21:22.850 に答える
0

これが1つの方法です。特にエレガントではありません。

var doc = XDocument.Load(@"<path>\exchange.xml");

// convert xml to List<> containing Currency and Value
var q = doc.Element("Exchange").Elements("Rec").Select (e => 
    new {
        Currency = e.Elements("data").
                Where (x => "Currency" == (string) x.Attribute("headers")).
                Select (x => (string)x).Single (),

        Value = e.Elements("data").
                Where (x => "Value" == (string) x.Attribute("headers")).
                Select (x => (double)x).Single (),
    }
);

// select the value we're after
var q1 = q.Where (x => x.Currency == "USD").Select (x => x.Value).Single ();

q1.Dump();
于 2012-04-12T11:28:47.220 に答える