2012-03-19 140 views
0

我有多個數據項,每個數據項都有一個具有多個標籤的值 - t1,t2 ... tn。我有一個XML文件,我選擇存儲每個項目以及與其關聯的標籤,例如在XML和C#中實現多對多映射的最佳方式是什麼?

<root> 
<item> 
<value>V1</value> 
<tag>t11</tag> 
<tag>t12</tag> 
<tag>t13</tag> 
</item> 
<item> 
<value>V2</value> 
<tag>t21</tag> 
<tag>t22</tag> 
</item> 
... 
</root> 

我希望能夠在搜索標籤時輕鬆查詢值V.如何在不編寫整個代碼庫的情況下高效地完成這項工作?

回答

1

如果你有在你的XML的控制,我會重組這樣的:

<root> 
    <item value="V1"> 
     <tag>t11</tag> 
     <tag>t12</tag> 
     <tag>t13</tag> 
    </item> 
    <item value="V2"> 
     <tag>t21</tag> 
     <tag>t22</tag> 
    </item> 
</root> 

這種方式,你可以簡單地寫這樣一個XQuery讓所有給定值的標籤:

//item[@value="V2"]/tag 
+0

真棒,迫不及待地嘗試它:) – Freakishly 2012-03-20 23:48:26

+0

賈斯汀,有沒有辦法,如果我按照你所建議的方式重構XML,人們可以搜索標籤,並找到所有與它相關的值? – Freakishly 2012-08-24 21:10:03

+0

http://stackoverflow.com/questions/3712452/how-to-retrieve-parent-node-using-xquery頂部選定的答案表明你可以像這樣做一個xquery:'/ root/item/tag [text ()='TagLookingFor']/..',然後抓住所有不同的@值。另外,如果您覺得此答案正確,請記住註冊並添加複選標記。 – 2012-08-26 20:52:40

相關問題