2012-01-31 9 views

答えて

2

ですべてのテキストを取得することができますLINQは:

XDocument doc = XDocument.Parse(@"<company>...</company"); 

string result = string.Join(" ", 
    doc.Root 
     .Nodes() 
     .SkipWhile(n => n.NodeType != XmlNodeType.Element || 
         (int)((XElement)n).Attribute("id") != 23) 
     .TakeWhile(n => n.NodeType != XmlNodeType.Element || 
         (int)((XElement)n).Attribute("id") != 25) 
     .OfType<XText>()); 

// result == "pet DOCUMENT" 
+0

どの部分がテキストを取得していますか? – DotnetSparrow

0

Dim tDoc as XmlDocument = new XmlDocument 
Dim tNodes As XmlNodeList = Nothing 

tDoc.Load(path_to_xml_file) ' Or .LoadXml(xml_string) 
tNodes = tDoc.SelectNodes("//data") 

For Each tNode As XmlNode In tNodes 
    Select Case tNode.Attributes("id").value 
    Case 23, 24, 25 
     ' Do your processing here 
    End Select 
Next 

EDIT 私は上記のXMLを誤解しました。とにかく...私は、特定のノードIDの間のテキストを取得する方法について知らない..しかし、あなたはあなたが使用することができますtDoc.SelectSingleNode("//company").InnerText

+0

私は間のテキストを必要としますこれらのノード。どうすればテキストを入手できますか? – DotnetSparrow

0
XDocument doc = XDocument.Parse(@"<company>...</company"); 

string result = string.Join(" ", 
    doc.Root 
     .Nodes() 
     .SkipWhile(n => n.NodeType != XmlNodeType.Element || 
         (int)((XElement)n).Attribute("id") != 23) 
     .TakeWhile(n => n.NodeType != XmlNodeType.Element || 
         (int)((XElement)n).Attribute("id") != 25) 
     .OfType<XText>()); 
関連する問題