2013-06-03 1 views
0

먼저 이름을 유감스럽게 생각합니다. 내 질문을 질문 형식으로 설명하는 방법을 생각할 수 없었습니다. 그러나 이것이 내가하려는 일입니다. 내가 원하는 것은 내 로컬 위치 노드에 저장된 속성 값에 액세스하는 것입니다동일한 데이터를 사용하여 두 XML 노드에서 속성 값 가져 오기

<Settings> 
    <Display_Settings> 
    <Screen> 
     <Name Name="Screen" /> 
     <ScreenTag Tag="Screen Tag" /> 
     <LocalPosition X="12" Y="81" Z="28" /> 
     <Width Width="54" /> 
     <Height Height="912" /> 
    </Screen> 
    <Camera_Name Name="Camera"> 
     <CameraTag Tag="Camera Tag" /> 
     <LocalPosition X="354" Y="108" Z="Z Local Position" /> 
     <Far Far="98" /> 
     <Near Near="16" /> 
     <FOV FOV="78" /> 
     <AspectRatio AspectRatio="1" /> 
     <ScreenDistance ScreenDistance="2" /> 
    </Camera_Name> 
    </Display_Settings> 
</Settings> 

: 여기

내 XML을 같이 찾고있는 것이다. 나는이 몇 가지 도움이 있고 난이 코드를 사용하여 화면을 지역의 위치 속성 값에 액세스 할 수 있습니다 : 나는 그것을 디버깅 할 때

var xdoc = XDocument.Load("C:\\Test.xml"); 
    int x = int)xdoc.Descendants("LocalPosition").First().Attribute("X"); 

이 행복 하 게 (12) 반환합니다. 그러나, 나는 또한 내 카메라를 로컬 위치뿐만 퍼팅 아웃 싶어요.

누군가이 방법을 보여 줄 수 있습니까?

+0

이 도움이 될 것입니다 http://stackoverflow.com/questions/752271/how-to-get-xml-node-from- xdocument –

답변

1

당신은 Descendants를 사용하여 카메라 및 화면 위치를 잡아 다음 Attribute와 그것을 구성 요소를 액세스 할 수 있습니다.

var cameraPosition = xdoc.Descendants("Camera_Name") 
         .First() 
         .Element("LocalPosition"); 

var screenPosition = xdoc.Descendants("Screen") 
         .First() 
         .Element("LocalPosition"); 


//parsing and displaying data 
int cameraX = int.Parse(cameraPosition.Attribute("X").Value); 
int cameraY = int.Parse(cameraPosition.Attribute("Y").Value); 
Console.WriteLine ("camera pos: X={0}; Y={1}", cameraX, cameraY); 

int screenX = int.Parse(screenPosition.Attribute("X").Value); 
int screenY = int.Parse(screenPosition.Attribute("Y").Value); 
Console.WriteLine ("screen pos: X={0}; Y={1}", screenX, screenY); 

인쇄 : 코드 예제가 아래에서 언급

screen pos: X=12; Y=81 
camera pos: X=354; Y=108 
관련 문제