2011-08-02 2 views
1

내가 문자열 배열가져 오기 XML - 윈도우 폰 7

private void ReadXml(string Dictionary, char letter) 
    { 
     XDocument xml = XDocument.Load(Dictionary); 
     string[] dictionary=new string[2]; 
     int i=0; 
     IEnumerable<XElement> de = from el in xml.Descendants(letter.ToString()) 
            select el; 
     foreach (XElement el in de) 
     { 
      dictionary[i++] = el.Value.ToString(); 
     } 
    } 

그러나 생성 된 배열에 XML 파일의 데이터를 가져 오기 위해이 기능을 사용하고는 모든 내용을 가지고 xml 태그 첫 줄에 병합을 지정합니다.

예를 들어, XML은

<?xml version="1.0" encoding="Unicode"?> 
<Animals> 
    <A>Ant</A> 
    <B> 
    <word>Boa</word> 
    <word>Bear</word> 
    </B> 
</Animals> 

xml.Descendants("B")dictionary[0]=BoaBear

dictionary[1]=NULL 그래서 어떻게 그렇게 모든 단어는 별도의 배열 셀에 도착 그것을 만들 수를 생산하여 파일을?

감사합니다.

+1

가 귀하의 XML이 잘못 설계되어있다. 모든 경우에 여러 개의 ''태그를 사용해야합니다. – SLaks

+0

네 말이 맞아, 나는이 태그가 다른 태그라고 생각했기 때문에이 "word1, word2"를 사용했다. 조언 주셔서 감사합니다. 바로 바꿀 것입니다 :) –

+0

단어가 하나만 있긴하지만 ''에도 ''태그를 사용해야합니다. 균일하게 구조화 된 데이터는 작업하기가 훨씬 쉽습니다. – SLaks

답변

3

<B> 태그 내부의 요소를 반복해야합니다 (Elements()). 예를 들어

:

foreach(var word in xml.Root.Element("B").Elements()) 
+0

좀 더 구체적으로 기재 할 수 있습니까? 엘에게 어디 전화해야 하나? 엘레멘트? –

+0

죄송합니다. 'de.Elements()'. 'foreach'에서. 나는 ciorrect 예제를 추가 할 것이다. – SLaks

+0

그런 식으로 사용했고'dictionary [0] = Boa'및 'dictionary [1] = 베어'을 받았습니다. 그러나 나는 우리가 올바른 방향에 있다고 생각한다. –

관련 문제