2014-05-08 6 views
0

플래시 플레이어 구성을 위해 xml을 만들었습니다. 각 노드의 특성을 텍스트 상자 또는 드롭 다운 목록에로드하려고합니다.XML 노드에서 속성 가져 오기

<config> 
    <param name="width" value="960" /> 
    <param name="height" value="545" /> 
    <param name="loop" value="0" /> 
    <param name="autoload" value="1" /> 
    <param name="autoplay" value="1" /> 
    <param name="showstop" value="1" /> 
</config> 

Dim XmlDoc As XmlDocument = New XmlDocument 

    XmlDoc.Load(Server.MapPath("config.xml")) 

    For Each Attribute As XmlAttribute In XmlDoc.DocumentElement.Attributes 
     If Attribute.Name = "width" Then 
      If Attribute.Name = "value' then" Then 
       tbxWidth.Text = Attribute.Value 
      End If 

     End If 


    Next 

다른 사람이 도와 줄 수 있습니까? 당신이 시작하는 방식으로 유지

+0

Config에는 노드가있는 속성이 없습니다. 속성을 가지고 있습니다 ... XmlDoc.DocumentElement.Select ("param [@ name = 'width']). 그게 null이 아니야 가치 atrribute. –

+0

그 위에 어떻게 두 속성의 이름을 가질 수 ... –

답변

0

...

Dim XmlDoc As XmlDocument = New XmlDocument 
XmlDoc.Load(Server.MapPath("config.xml")) 

For Each node As XmlNode In XmlDoc.DocumentElement.SelectNodes("param[@name='width']") 
    XmlAttribute Attribute = node.Attributes["value"]   
    If Attribute IsNot Nothing Then 
      tbxWidth.Text = Attribute.value 
    End If 
    Next 
Next 

아니 VB 소년

, 그래서 이상한 바보 기대 ...

참고는 폭 속성을 가진 하나 개 이상의 PARAM 노드가 있다면 , 이것은 마지막으로 걸릴 것입니다 ...

+0

이 방법을 사용하면 12-15 번에 걸쳐 코드를 잘라내어 붙여 넣고 다음 값과 텍스트 상자 ("param [@ name = 'width']")를 변경해야합니다. 여러 번 잘라내어 붙여 넣기하지 않고도이 작업을 수행 할 수있는 방법이 있습니까? – Michael

+0

정말요? 그리고 어떻게 특정 텍스트 상자에 속성을 매핑 할 것입니까? 대신 SelectNodes ("param")를 사용하십시오. 거기에서 이름과 값 속성을 가져 와서 name (switch 문?, Dictionary ?)을 사용하여 어느 textBox를 값을 설정할지 알아야합니다. 우리는 당신이 묻는 질문에만 대답 할 수 있습니다 ... –

+0

만약 내가 이것을하고 있었다면,이 메소드는 아마도 이름과 값의 사전을 돌려 주었을 것입니다. 아마 하나의 Linq 문을 가지고 리턴 한 다음, 그것을 폼에 표시하는 방법을 처리 할 것입니다. –

관련 문제