문제

이 시나리오와 비슷한 시나리오가 있습니다.

public class TestLinq2Xml
{
  private XElement GenerateSomeXml()
  {
     return XElement.Parse(@"<MyObject>
                                <Properties>
                                   <Name>My object 1</Name>
                                   <Position>0; 0; 0</Position>
                                </Properties>
                             </MyObject>");
  }

public void ExploreXmlNode()
{
  var xmlTree = this.GenerateSomeXml();

  var name = xmlTree.Element("MyObject").Element("Properties").Element("Name").Value;

  Console.WriteLine(name);
}

}

좋아, 이것은 매우 단순화되었습니다. ....하지만 여전히 작동하지 않습니다. 내가 여기서 잘못하고있는 일에 대한 아이디어가 있습니까?

편집하다:

오, 거의 잊었습니다. 문제는 그 것입니다 xmlTree.Element("MyObject") 빈 LINQ 시퀀스를 반환합니다. "myobject"라는 노드가 분명히 있지만.

도움이 되었습니까?

해결책

xElement.parse는 xlement를 반환합니다 <MyObject> 마디. 노력하다:-

var name = xmltree.element ( "Properties"). 요소 ( "이름"). 값;

다른 팁

이전 포스터가 제안한 것 외에도 LINQ가 작동하도록 generatesOmexml () 함수에서 XDocument를 반환 할 수도 있습니다.

        private static XDocument GenerateSomeXml()
    {
        return XDocument.Parse(@"<MyObject>
                            <Properties>
                               <Name>My object 1</Name>
                               <Position>0; 0; 0</Position>
                            </Properties>
                         </MyObject>");
    }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top