2012-03-15 99 views
1

給這個XML結構:
LINQ解析XML

<store-fax-info> 
     <store-info store-status="1" store-service-type="2"> 
     <store-guid>blah-blah-blah-blah</store-guid> 
     <store-name>Avacados R Us</store-name> 
     <phone>555-555-5555</phone> 
     <fax>123-456-789</fax> 
     <attention>Rockhead Rumble</attention> 
     </store-info> 
     <selected-clerk> 
     <clerk-info guid="x"> 
      <clerk name="full-name" label="Clerk Name" value="" /> 
     </clerk-info> 
     <item-info> 
      <item-name="item-model" label="Item Model" value="Super Spuds" /> 
      <item-name="item-model-num" label="Model Number value="55555" /> 
      <item-name="family" label="Veggie Family" value="Tuber" /> 
      <item-name="serial-number" label="Serial Number" value="ABC123456A" /> 
      <item-name="date-checked" label="Last Date Checked" value="Mar 15 2012 11:00AM" /> 
      <item-name="item-weight" label="Weight" value="20lbs /> 
     <item-info> 
     </selected-clerk> 
    </store-fax-info> 

在項目,信息節點的屬性後,我,特別是每個屬性的最後一個值。踢球者是,我只需要6個屬性中的4個。我一整天都在喋喋不休。我把這個xml放在一個XElement中,讓我們把它稱爲info。當我寫這個:

​​

在這一點上,我可以看到所有六個項目名稱...行。目的是我想獲取值並將它們放入類對象中。粗略僞代碼的預期結果是......

select new MyObject() 
    { 
     Product = query.SuperSpuds, 
     Number = query.55555, 
     SerialNumber = query.ABC123456A, 
     CheckedDate = query.Mar 15 2012 11:00AM, 
    } 

我似乎無法按摩LINQ查詢來做我所需要的。

+0

的XML是無效的......是什麼這些應該是?? ''元素沒有名字,只是一堆屬性!? – joshuahealy 2012-03-15 23:56:23

+0

是的,沒錯。我應該提到。這是一個被傳遞的xml片段。最終它最終與其他片段合併。我只是劫持這個片段來得到所需的東西。 – AvacadoRancher 2012-03-16 00:42:41

回答

1

首先,你的xml格式不正確。

之類的東西

<item-name="item-model" label="Item Model" value="Super Spuds" />

是不允許的。如果你想存儲內部元素文本使用:

<item-name label="Item Model" value="Super Spuds">item-model</item-name>

但是如果你改變XML爲有效的一個下面的代碼可以幫助你:

var xElements = xElement.Descendants("item-name").Attributes("value").ToList(); 

var o = new MyObject() 
      { 
       Product = xElements[0].Value, 
       Number = xElements[1].Value, 
       SerialNumber = xElements[2].Value, 
       CheckedDate = xElements[3].Value 
      }; 
+0

這讓我在路上,感謝ton_joric。我解決了上述的XML問題。測試了代碼,它給了我我需要的東西。 – AvacadoRancher 2012-03-16 00:43:28