2017-11-28 21 views
0

XMLノードを取得したいサンプルXMLを次に示します。XDocument.Elementを使用してxmlノードを取得できません

XDocument doc = XDocument.Load("PurchaseOrder.xml"); 

<Rootelement> 
    <element1 /> 
    <element2 /> 
    <element2 /> 
    <element3 /> 
</Rootelement> 

は、私は、XML

ここに私のコードスニペットがあるから要素2を知りたいです。

var xElement = XDoc.Element("Rootelement").Element("element2"); 

しかし、私はnullを示します。私はxmlに名前空間がなく、私はそれを含むことができません。

助けてください。

+0

2番目の要素を試したい場合は、doc.Root.Elements()。Skip(1).FirstOrDefault(); – jdweng

答えて

0
XmlDocument xml = new XmlDocument(); 
    xml.LoadXml(myXmlString); 

    XmlNodeList xnList = xml.SelectNodes("/Names/Name"); 
    foreach (XmlNode xn in xnList) 
    { 
     string firstName = xn["FirstName"].InnerText; 
     string lastName = xn["LastName"].InnerText; 
     Console.WriteLine("Name: {0} {1}", firstName, lastName); 
    } 

このコードは、タグ<firstName><LastName>のすべての値を返します。 1つの値だけが必要な場合は、foreachループを削除することができます。ここで

は、XMLコード

<Names> 
    <Name> 
     <FirstName>John</FirstName> 
     <LastName>Smith</LastName> 
    </Name> 
    <Name> 
     <FirstName>James</FirstName> 
     <LastName>White</LastName> 
    </Name> 
</Names> 
0

は、このようにしてみています。

var xElement = doc.Root.Element("element2"); 

文書内の任意の場所にある要素を検索する場合は、 を使用します。

doc.Descendants("element2") 
+0

既にこれを試しましたが、null値が返されています –

+0

完全なxmlを私たちに教えましたか? – lucky

関連する問題