簡體   English   中英

使用LINQ從XML元素獲取屬性時遇到麻煩

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM