[英]trouble getting attributes from XML elements using LINQ
因此,我正在從第三方API返回的某些XML中解析屬性和值,並且得到的結果不一致。 XML如下所示:
<propertyMetrics month="12" year="2013" propertyId="3923837">
<metric name="siteTotal" uom="kBtu" dataType="numeric">
<value>409249.0</value>
</metric>
<metric name="waterUseTotal" uom="kgal" dataType="numeric">
<value>2434.2</value>
</metric>
<metric name="totalGHGEmissions" uom="MtCO2e" dataType="numeric">
<value>28.5</value>
</metric>
<metric name="greenPowerOnSite" dataType="numeric">
<value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" />
</metric>
</propertyMetrics>
我在LINQPad中使用以下代碼來查詢XML:
var propMetrics = doc.Descendants("metric").Attributes();
我從LINQpad的輸出看起來像這樣:
IEnumerable<XAttribute> (11 items)
name="siteTotal"
dataType="numeric"
name="waterUseTotal"
dataType="numeric"
name="totalGHGEmissions"
uom="MtCO2e"
dataType="numeric"
name="greenPowerOnSite"
dataType="numeric"
如您所見,它沒有捕獲所有屬性,最值得注意的是,它只有一個uom屬性。 有誰知道為什么會這樣? 謝謝!
我只是使用LINQPad,並使用以下命令獲得了正確的結果:
propMetrics.Descendants("metric").Attributes()
我認為唯一可能發生的是第三方API返回的字符串中的一些編碼問題。 嘗試將XML從您的問題復制到LINQPad並進行測試以確認這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.