2013-05-05 4 views
0

이 항목에 대한 답변을 보았지만 원하는 것을 실제로 얻을 수는 없습니다. 메뉴를 만들고 있는데 링크를 지정해야합니다. 그렇다면 어떻게 특정 노드의 값을 얻을 수 있습니까? 예를 들어 subMenus [0] <subMenu id="submenu1"><hrefSubMenu>의 값을 얻는 방법은 http://www.web01.com입니까?특정 값 및 노드 수 얻기

<?xml version="1.0" encoding="utf-8"?> 
<menu> 
    <link id="0"> 
    <title>Main Link 01</title> 
    <href>http://www.mainweb01.com</href> 
    <subMenus> 
     <subMenu id="sublink1"> 
     <titleSubMenu>SubMenu01</titleSubMenu> 
     <hrefSubMenu>http://www.web01.com</hrefSubMenu> 
     </subMenu> 
     <subMenu id="sublink2"> 
     <titleSubMenu>SubMenu02</titleSubMenu> 
     <hrefSubMenu>http://www.web02.com</hrefSubMenu> 
     </subMenu> 
    </subMenus> 
    </link> 
    <link id="1"> 
    <title>Main Link 02</title> 
    <href>http://www.mainweb02.com</href> 
    <subMenus> 
     <subMenu id="sublink3"> 
     <titleSubMenu>SubMenu03</titleSubMenu> 
     <hrefSubMenu>http://www.web03.com</hrefSubMenu> 
     </subMenu> 
     <subMenu id="sublink4"> 
     <titleSubMenu>SubMenu04</titleSubMenu> 
     <hrefSubMenu>http://www.web04.com</hrefSubMenu> 
     </subMenu> 
     <subMenu id="sublink5"> 
     <titleSubMenu>SubMenu05</titleSubMenu> 
     <hrefSubMenu>http://www.web05.com</hrefSubMenu> 
     </subMenu> 
    </subMenus> 
    </link> 
</menu> 

이렇게하면 전체 제목에서 특정 노드의 값을 얻을 수 있습니다. 내가 예를 들어 말한대로

//if I want to get the first title 
var name = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue; 
alert(name); 
//the output will be Main Link 01 

는하지만, 특정 노드의 값을 얻으려면, 하위 메뉴에서 nodeValue를 [0] 값이 "http://www.web01.com"(난 그냥하기 위해 모든 솔루션을 적응있다 <subMenu id"sublink1"><hrefSubMenu>, 찾고 원하는 노드 값을 얻으십시오). 그러나 나는 그것을하는 방법을 아는 데 도움이 필요합니다.

당신이 나에게 줄 수있는 도움에 미리 감사드립니다.

인사말.

답변

1

요소 노드에는 노드 값이 없습니다.

요소 <subMenu id="sublink1"> 차례로 자식 텍스트 노드 http://www.web01.com이있는 아이 요소 노드 hrefSubMenu을 가지고 있습니다. 텍스트 노드의 노드 값은 텍스트 자체입니다.

그래서 난 당신이 원하는 생각 :

var href = xmlDoc.getElementById('sublink1') // get subMenu element 
    .getElementsByTagName('hrefSubMenu')[0] // get hrefSubMenu child 
    .firstChild.nodeValue; // get node value of text node 
시간에 대한
+0

안녕 @Felix 클링의 덕분에, 그것은이 그냥 크롬 (그것은 HREF를 출력)에 대한 작업을 수행 보인다,하지만 IE가이 메소드를 지원하지 않는 및 FF와 오페라 추락. 그러나 그것은 내가 원하는 것입니다. 거기에 크로스 브라우징 솔루션, 해결 방법 또는 프레임 솔루션 (jquery)이 정확히 뭐하는거야?. 대단히 감사합니다. 이것은 아주 좋은 출발입니다. 인사말. – Diego

+0

약간의 코드를 변경했으며 매력처럼 작동합니다. – Diego

+0

var href = xmlDoc.getElementsByTagName ('subMenu') [0] .getElementsByTagName ('hrefSubMenu') [0] .firstChild.nodeValue; – Diego