2013-06-18 3 views
-1

vba에서 xml 아래의 모든 속성 이름을 얻는 방법, 하드 코딩 대신 속성 이름을 동적으로 수집하려고 시도 할 때 속성 이름이 증가하거나 감소 할 수 있습니다.VBA : xml에서 속성 이름 가져 오기

<Doc a="1" b="2"> 
    <Doc1 aa="1" bb="2" cc="3" dd="4"/> 
    <Doc1 aa="1" bb="2" cc="3" dd="4" ee="5"/> 
    <Doc1 aa="1" bb="2" cc="3" dd="4"/> 
    <Doc1 aa="1" bb="2" cc="3" dd="4" ff="6"/> 
    <Doc1 aa="1" bb="2" cc="3" dd="4" gg="7"/> 
</Doc> 

제게 제안 해주세요.

+0

이 문제를 해결하는 방법을 시도해 봤습니까? 그렇다면 게시 해주세요. – avalancha

+0

또는 [검색] (http://stackoverflow.com/search?q) –

답변

0

XML은 항상 도전 과제입니다. 귀하의 독서 코드는 작성 코드와 절대로 바뀌지 않을 희망에 크게 의존합니다. 귀하의 출처는 낯선 사람 중 하나입니다.

나는 항상 이러한 문제에 대한 해결책을 찾기 위해 인터넷을 검색해야하며 일반적으로 게시물은 내가 가지고있는 XML 도구의 버전과 일치하지 않습니다. 일반적으로 IDE를 사용하여 객체 라이브러리를보고 게시물에서 찾은 객체 및 해당 속성을 찾을 수 있습니다. Excel F2에서는 개체 브라우저가 나타나며 MSXML2 라이브러리를 볼 수 있습니다.

  Sub test() 
       ' add reference to MSXML v6 
       'http://msdn.microsoft.com/en-us/library/aa468547.aspx 
       'http://msdn.microsoft.com/en-US/data/bb190600.aspx 
       Dim xdoc As New DOMDocument60 
       Dim s As String 
       s = s & "<Doc a=""1"" b=""2"">" 
       s = s & "<Doc1 aa=""1"" bb=""2"" cc=""3"" dd=""4""/>" 
       s = s & "<Doc1 aa=""1"" bb=""2"" cc=""3"" dd=""4"" ee=""5""/>" 
       s = s & "<Doc1 aa=""1"" bb=""2"" cc=""3"" dd=""4""/>" 
       s = s & "<Doc1 aa=""1"" bb=""2"" cc=""3"" dd=""4"" ff=""6""/>" 
       s = s & "<Doc1 aa=""1"" bb=""2"" cc=""3"" dd=""4"" gg=""7""/>" 
       s = s & "</Doc>" 
       xdoc.LoadXML (s) 
       DisplayNodes2 xdoc 
      End Sub 

      Sub DisplayNodes2(xmlDoc As DOMDocument60) 
       'http://social.msdn.microsoft.com/Forums/en-US/xmlandnetfx/thread/454fbc72-ab87-4479-b0bf-b7925834ac4e/ 
       Dim xelem As IXMLDOMElement 
       Dim xa As IXMLDOMAttribute 
       For Each xelem In xmlDoc.SelectNodes("//*") 
        Debug.Print xelem.nodeName 
        For Each xa In xelem.Attributes 
         Debug.Print xa.Name, xa.Value 
        Next xa 
       Next xelem 
      End Sub