0

特定の問題があります:

見つめている

<observation realtime_start="2013-02-23" realtime_end="2013-02-23" date="1975-01-01" value="4917.2"/>
<observation realtime_start="2013-02-23" realtime_end="2013-02-23" date="1976-01-01" value="5186.8"/>

だから私は特定の日付の値属性を取得しようとしていますが、

string xmlNode = root.SelectSingleNode("/observations/observation/@value").Value;

それを使用すると、最初の値 (4917.2) が得られます。「1976-01-01」と 5186 からの値が必要であることを指定するにはどうすればよいですか?

ありがとうございました。

4

1 に答える 1

1

これはそれを行います:

string xmlNode = root.SelectSingleNode("/observations/observation[@date='1976-01-01']/@value").Value;

これは、日付が1976-01-01である観測ノードの@valueを選択することを意味します。そして、@ valueの整数だけを取得するには、おそらくこれを実行している言語を使用する必要があります(切り捨て関数があると思います)。@JLRisheが観察および説明したように、あなたrootは.NET XmlNodeまたはXPathNavigatorのように見えます。これらはノードのみを選択できるため、以下は機能せず、例外がスローされます。丸めのためのxpath関数があることを示すために、これを残しました。

string xmlNode = root.SelectSingleNode("floor(/observations/observation[@date='1976-01-01']/@value)").Value;

xpath関数route(使用できないように見える)を使用していて、常に最も近い整数に丸めたい場合は、floorをroundに変更します。また、常に切り上げたい場合は、床を天井に変更してください。

于 2013-02-23T18:22:19.537 に答える