2009-12-29 58 views
0

我有一個看起來像這樣的XML文件。格式化XML數據,項目列表

<Almond> Roasted Almonds,Almond Extract,Almond Sauce,Almond Milk,Almond Cake,Almond Ice Cream,Almond Paste </Almond> 
<American Cheese> MilkWhey,Cheese Dip,Sliced Cheese </American Cheese> 
<Apple> Apple Sauce,Apple Pie,Pear,Apple Juice,Apple Cider,Apple Butter </Apple> 
<Avocado> Guacamole,California Sushi Rolls,Hass Avocado,Avocado Oil </Avocado> 
<Banana> Banana Bread,Banana Cream Pie,Banana Split,Banana Pudding </Banana> 

您是否建議以不同的方式對其進行格式化?

我需要獲取與杏仁相關的所有食物,與美國奶酪,蘋果等。

我將與vb.net來讀取數據

+2

......甚至不需要是XML。 「成分:use1,use2,...」的格式就足夠了。 – 2009-12-29 18:27:23

回答

2

而不必命令行分離值,我會有子標籤<Item>什麼的,所以解析器可以在處理它們時有一個鏡頭。它更詳細,但更好的XML。

如果XML在這裏不起作用,我會建議一些不像JSON那樣冗長的東西。我沒有看到標籤和元數據在這裏很好。

0

從你的XML你似乎需要某種「標記」。 如果我們假設你的XML用來存儲成分,那麼爲什麼不能有一個名爲<ingredient/>

這裏標籤是在XML可能是什麼樣子的樣本:

<recipelist> 
    <recipe name="Roasted Almonds"> 
     <ingredients> 
      <ingredient>Almond</ingredient> 
     </ingredients> 
    </recipe> 
    <recipe name="Almond Extract"> 
     <ingredients> 
      <ingredient>Almond</ingredient> 
      <ingredient>some other</ingredient> 
     </ingredients> 
    </recipe> 
</recipelist> 

然後你可以使用LINQ或一些其他的XML查詢語言來查詢與上面相同的結果。示例XPath查詢將如下所示:

//recipelist/recipe[ingredients/ingredient/text()='Almond']/@name 

這會給所有具有「杏仁」成分的食譜。 這也可以爲其他目的提供更靈活的XML格式,並且更容易從數據庫生成。