You need to sign in to do that
Don't have an account?

Error : ......Invalid type: XmlStreamReader.Book
Hi ,
how to solution this error........
static void testBookParser()
{
xml2DB1 demo = new Xml2DB1();
String str = '<Books><Book><Name>My Book 1</Name><publisher>Tata</publisher><cost>200</cost></Book>'+
'<Book><Name>My Book 2</Name><publisher>Tata</publisher><cost>300</cost></Book>'+
'<Book><Name>My Book 3</Name><publisher>Tata</publisher><cost>400</cost></Book></Books>';
XmlStreamReader callxml = new XmlStreamReader(str);
System.debug('Callxml .....'+callxml);
List<Book__c> booklist = new List<Book__c>();
for(XmlStreamReader.Book b: callxml.listrecords)
{
Book__c bc = new Book__c();
bc.Publisher__c='Tata';
bc.Name__c=b.name;
booklist.add(bc);
}
System.debug('books .......'+booklist.size());
system.debug('books........'+booklist);
if(booklist.size()>0)
{
insert booklist;
}
}
Hi palli,
Please go thru this document http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_xml_XmlStream_reader.htm
this document has good example for you.
regards
USman
hi,
i see the example , but that error is not sloved...
please help me
You did not parse your xml like
Please try like this.If you are unable to parse please post your complete code I will do for you.
public class Xml2DB1
{
public class Book {
String name;
String publisher;
integer cost;
}
public List<Book> listrecords = new List<Book>();
public Book[] parseBooks(XmlStreamReader reader)
{
Book[] books = new Book[0];
while(reader.hasNext())
{
if (reader.getEventType() == XmlTag.START_ELEMENT)
{
if ('Book' == reader.getLocalName())
{
Book book = parseBook(reader);
books.add(book);
}
}
reader.next();
}
return books;
}
public Book parseBook(XmlStreamReader reader)
{
Book book = new Book();
book.publisher = reader.getAttributeValue('', 'publisher');
while(reader.hasNext())
{
if (reader.getEventType() == XmlTag.END_ELEMENT)
{
break;
}
else if (reader.getEventType() == XmlTag.CHARACTERS)
{
book.name = reader.getText();
}
reader.next();
}
return book;
}
static void testBookParser()
{
xml2DB1 demo = new Xml2DB1();
String str = '<Books><Book><Name>My Book 1</Name><publisher>Tata</publisher><cost>200</cost></Book>'+
'<Book><Name>My Book 2</Name><publisher>Tata</publisher><cost>300</cost></Book>'+
'<Book><Name>My Book 3</Name><publisher>Tata</publisher><cost>400</cost></Book></Books>';
XmlStreamReader callxml = new XmlStreamReader(str);
System.debug('Callxml .....'+callxml);
List<Book__c> booklist = new List<Book__c>();
for(XmlStreamReader.Book b: callxml.listrecords)
{
Book__c bc = new Book__c();
bc.Publisher__c='Tata';
bc.Name__c=b.name;
booklist.add(bc);
}
System.debug('books .......'+booklist.size());
system.debug('books........'+booklist);
if(booklist.size()>0)
{
insert booklist;
}
}
}...........
please help me
Hi,
In your code your are using XmlStreamReader.Book (In for loop ). XmlStreamReader class does not have any static property by name Book . Thats the reson its giving you an error.
Regards,
Manjunath
Hi,
Follw this link it will give you all the methods supported by the XmlStreamReader class.
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_xml_XmlStream_reader.htm
Regards,
Manjunath