Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > вывести данные из xml


Автор: ОнКофе 16.4.2008, 14:32
Есть файл xml

Код

<?xml version="1.0" encoding="windows-1251"?>
<InfoPacket>
<A>
 <AName>1</AName>
 <Info>
  <InfoName>1,1</InfoName>
 </Info>
 
 <Info>
  <InfoName>1,2</InfoName>
 </Info>
</A>

<A>
 <AName>2</AName>
 <Info>
  <InfoName>2,1</InfoName>
 </Info>
</A>
</InfoPacket>


пытаюсь вывести список

Код

function GetElementValue(xmlNode,name)
{
  var res = "";
  var node = xmlNode.selectSingleNode(name);
  if (node!=null) res = node.text;
  return res;
}

      var xml = new ActiveXObject("MSXML2.DOMDocument");
      xml.async = false;
      xml.resolveExternals = false;
      xml.validateOnParse = false;
      
      xml.load(XmlFileName);
      var xmlA = xml.documentElement.selectNodes("//A");
      document.write('<P>Всего: '+xmlA.length+'');

      for (var i=0; i<xmlA.length; i++)
      {
        var xmlItem = xmlA[i];
        var AName = GetElementValue(xmlItem,"AName");
        var xmlInfo = xml.documentElement.selectNodes("//Info");
        
        if (AName!="") Response.write("<P>"+xmlInfo.length+" <B>"+AName+"</B><BR>");
        
         for (var j=0; j<xmlInfo.length; j++)
         {
          var xmlItem = xmlInfo[j];
          var InfoName = GetElementValue(xmlItem,"InfoName");
          if (InfoName!="") document.write("<B>"+InfoName+"</B><BR>");
         }


выводит 

1
1,1
1,2
2,1

2
1,1
1,2
2,1

а должен выводить 
1
1,1
1,2

2
2,1

Что делаю не правильно?

Автор: ОнКофе 16.4.2008, 15:02
сам догнал.....

вместо
Код

        var xmlInfo = xml.documentElement.selectNodes("//Info");


нужно было определять

Код

        var xmlInfo = xmlItem.childNodes;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)