2009-12-29 4 views
-2

Я следующий формат XML, который я разбор и получение данных и хранение в бин называется хугом, который имеет testurl, как anotherbean хуга имеет testurl боб массив, тест URL боб имеет идентификатор и изображениемассива переборе

<xyz> 
    <testUrl Id="SmallLogo">smallLogo.jpg</testUrl > 
    <testUrl Id="MediumLogo">mediumLogo.jpg</testUrl > 
    <testUrl Id="LargeLogo">largeLogo.jpg</testUrl > 
    <testUrl Id="ExtraLarge">test.png</testUrl > 
    </xyz> 
<xyz> 
    <testUrl Id="SmallLogo">smallLogo.jpg</testUrl > 
    <testUrl Id="MediumLogo">mediumLogo.jpg</testUrl > 
    <testUrl Id="LargeLogo">largeLogo.jpg</testUrl > 
    <testUrl Id="ExtraLarge">test.png</testUrl > 
    </xyz> 

Я получаю доступ к данным, имеет xyz.gettesturl()[i].getid(), не в состоянии правильно итеративно получить все данные, как бы итерации по массиву?

+0

Я не понимаю вашего вопроса. –

+1

Это даже не верно XML ... – skaffman

+0

Сара, это даже не действительный XML; вы открываете каждый из дочерних тегов с помощью '', но закрываете их ''/ResourceUrl> '. Кроме того, вы не показываете нам никакого кода для вашего класса 'xyz'. (И является ли bean действительно называется «xyz», против соглашения о присвоении имен Java, что имена классов капитализируются?) – delfuego

ответ

1

Ниже представлена ​​упрощенная выборка классов и их методов доступа из того, что я понял проблему, чтобы быть -

Класс XYZ -

public class XYZ { 

    private TestUrl[] testUrlArray; 

    public XYZ(){ 

     testUrlArray = new TestUrl[2]; 
     testUrlArray[0] = new TestUrl("ID_1"); 
     testUrlArray[1] = new TestUrl("ID_2"); 
    } 

    public TestUrl getTestUrl(int i){ 

     return testUrlArray[i]; 
    } 
} 

Класс TestUrl -

public class TestUrl { 

    private String id; 

    public TestUrl(String id){ 

     this.id = id; 
    } 

    public String getId(){ 

     return id; 
    } 
} 

Это как вы получите идентификатор для данного компонента TestUrl -

XYZ testXYZ = new XYZ(); 
    System.out.println("testXYZ 0 - " + testXYZ.getTestUrl(0).getId()); 
    System.out.println("testXYZ 1 - " + testXYZ.getTestUrl(1).getId()); 

Выход на консоли будет -

testXYZ 0 - ID_1 
testXYZ 1 - ID_2 
+0

Это то, что я делаю. Но вместо использования testXYZ.getTestUrl (0) .getId()) мне нужен цикл для итерации – sarah

0

Это:

xyz.gettesturl()[i].getid() 

получит конкретный testUrl, который индексируется i. Если вы хотите итерации, вы должны попробовать:

xyz.gettesturl() 

Чтобы перебрать.

+0

Я делаю то же самое, но не работает должным образом – sarah

+0

Покажите нам код и точно укажите, чего вы пытаетесь достичь. Я не могу догадаться без каких-либо подробностей. – Oded

-1

Указанный вами xml недействителен. у вас нет элемента ROOT в вашем xml. , если у вас

<root> 
    <xyz> 
    <testUrl Id="SmallLogo">smallLogo.jpg</testUrl > 
    <testUrl Id="MediumLogo">mediumLogo.jpg</testUrl > 
    <testUrl Id="LargeLogo">largeLogo.jpg</testUrl > 
    <testUrl Id="ExtraLarge">test.png</testUrl > 
    </xyz> 
    <xyz> 
    <testUrl Id="SmallLogo">smallLogo.jpg</testUrl > 
    <testUrl Id="MediumLogo">mediumLogo.jpg</testUrl > 
    <testUrl Id="LargeLogo">largeLogo.jpg</testUrl > 
    <testUrl Id="ExtraLarge">test.png</testUrl > 
    </xyz> 
</root> 

, то вы можете получить доступ ко всем идентификаторы, хотя вы, возможно, потребуется еще один компонент для корневого элемента, то вы можете использовать что-то вроде: root.getxyz() [я] .gettesturl() [J] .getid().

+4

Этот XML также недействителен. – BalusC

+1

действительно требуется 5 секунд, чтобы исправить это, и это явно опечатка. зачем голосовать? – Numenor

Смежные вопросы