格式化XML数据,项目列表

时间:2009-12-29 18:24:30

标签: xml vb.net

我有一个看起来像这样的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 个答案:

答案 0 :(得分:2)

我没有使用命令行分隔值,而是使用名为&lt; Item&gt;的子标签。或者某些东西,所以解析器可以有机会处理它们。它更冗长,但更好的XML。

如果XML在这里不起作用,我会提出一些不那么冗长的东西,比如JSON。我没有看到标签和元数据对你有好处。

答案 1 :(得分: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格式,并且更容易从数据库生成。