2012-10-07 17 views
1

我有一個XML字段在我的表,我的表是一樣的:鋤頭我可以從一個大的XML獲取XML?

id | xml | 

人無我有同樣的這一條記錄:

<dfs> 

<field mainType="text" id="cce267e046a57c1"></field> 
<field mainType="text" id="1b2490d1b11967c1"></field> 
<moduleFields mainType="module" many="true" moduleId="5" id="4a191594ec2c8723"> 
<items> 
    <field mainType="text" id="4a191594ec2c8723_1_56e5290262cd1eef"></field> 
    <field mainType="text" id="4a191594ec2c8723_1_f311896a52011eef"></field> 
    <field mainType="text" id="4a191594ec2c8723_1_e68f6673b9c79eef">1</field> 
</items> 
<items> 
    <field mainType="text" id="4a191594ec2c8723_2_56e5290262cd1eef"></field> 
    <field mainType="text" id="4a191594ec2c8723_2_f311896a52011eef">2</field> 
    <field mainType="text" id="4a191594ec2c8723_2_e68f6673b9c79eef">2</field> 
</items> 
<items> 
    <field mainType="text" id="4a191594ec2c8723_3_56e5290262cd1eef">3</field> 
    <field mainType="text" id="4a191594ec2c8723_3_f311896a52011eef">3</field> 
    <field mainType="text" id="4a191594ec2c8723_3_e68f6673b9c79eef">3</field> 
</items> 
</moduleFields> 
</dfs> 

我怎麼能得到moduleFields子標籤?

whith linq to xml or xquery?

回答

0

您可以使用XmlDocument和S electSingleNode如果你只希望有moduleFields元素,然後遍歷其attributes

//假設xmField的是,從日dbfield握着你的XML字符串。

var xdoc = new XmlDocument(); 
xdoc.Load(new StringReader(xmlField)); 
var module = xdoc.SelectSingleNode("/dfs/moduleFields"); 
if (module!=null) 
{ 
    Debug.WriteLine("value:" + module.Value); 
    foreach(var attr in module.Attributes) 
    { 
     Debug.WriteLine(attr.Name + "=" + attr.Value); 
    } 
} 
else 
{ 
    Debug.WriteLine("modulefields not found!"); 
} 
0

使用該查詢

/*/moduleFields 

這將選擇任何moduleFields元素是XML文檔的頂級元素的一個孩子。

但如果是在XML文檔的頂級元素的孩子不止一個moduleFields元素,你需要獲得只有第一個這樣的moduleFields元素,那麼使用

/*/moduleFields[1]