Электронный магазин на Java и XML



         

Метод addText - часть 2


private void addProductName( StringBuffer sb, Element e){

if( !e.getNodeName().equals("name") ){

NodeList nl = e.getElementsByTagName( "name" );

e = (Element) nl.item(0);

}

sb.append( getChildrenText( e ) );

}

// element is <author> tag

private void addAuthor( StringBuffer sb, Element e){

NodeList nl = e.getElementsByTagName( "name" );

sb.append( getChildrenText( (Element) nl.item(0)) );

}

private void addArtist( StringBuffer sb, Element e){

NodeList nl = e.getElementsByTagName( "name" );

sb.append( getChildrenText((Element) nl.item(0)) );

}

// example <author><name>Christoph Minwich</name></author>

// known to have price

private void addPrice( StringBuffer sb, Element e ){

NodeList nl = e.getElementsByTagName( "price" );

sb.append("price ea = ");

sb.append( nl.item(0).getFirstChild().getNodeValue() );

}

Служебный метод getChildrenText, приведенный в листинге 4.22, собирает вместе текст всех дочерних узлов данного элемента.

Листинг 4.22. Служебный метод getChildrenText (ProductFormatter.java)

private String getChildrenText( Element e ){

StringBuffer sb = new StringBuffer();

NodeList nl = e.getChildNodes();

for( int i = 0 ; i < nl.getLength() ; i++ ){

sb.append( nl.item(i).getNodeValue() );

}

return sb.toString();

}

Метод addlmageTag, приведенный в листинге 4.23, использует информацию из тега XML <iraage>. Ниже приводится пример из файла catalog.xml:

<image format="gif" width="234" height="4Q0"

src="images/covers/pi ants.gif">

<caption>

<paragraph>This is the cover from the

first edition.</paragraph>

</caption>

</image>

Помимо создания тега <img>, который вставляет в HTML-страницу изображение, этот метод также проводит анализ и отображает подпись к изображению.

Листинг 4.23. Метод, создающий теги изображения (ProductFormatter.java)

private void addImageTag( StringBuffer sb, Element img ){




Содержание  Назад  Вперед