Strange!! Unexpected end of file while parsing Name has occurred

A

Anup Daware

Hi Group,

I am facing a strange problem here:
I am trying to read xml response from a servlet using XmlTextWriter.
I am able to read the read half of the xml and suddenly an exception:
“Unexpected end of file while parsing Name has occurred†is being
thrown.

Following is the part o xml I am trying to read:
<CHECK_ITEM_OUT>
<ITEM id="">
<!-- id = [material] -->
<ITM_NUMBER>1</ITM_NUMBER>
<MATERIAL>001</MATERIAL>
<DEALER_CODE>DEL_One</DEALER_CODE>
<BRAND>Bridgestone</BRAND>
<HIERARCHY>HAR001</HIERARCHY>
<NET_PRICE>123.12</NET_PRICE>
<CURRENCY>EURO</CURRENCY>
</ITEM>
<ITEM id="">
<!-- id = [material] -->
<ITM_NUMBER>2</ITM_NUMBER>
<MATERIAL>002</MATERIAL>
<DEALER_CODE>DEL_Two</DEALER_CODE>
<BRAND>Firestone</BRAND>
<HIERARCHY>HAR002</HIERARCHY>
<NET_PRICE>453.12</NET_PRICE>
<CURRENCY>EURO</CURRENCY>
</ITEM>
<ITEM id="">
<!-- id = [material] -->
<ITM_NUMBER>3</ITM_NUMBER>
<MATERIAL>003</MATERIAL>
<DEALER_CODE />
<BRAND>FIRESTONE</BRAND>
<HIERARCHY>HAR001</HIERARCHY>
<NET_PRICE>24.12</NET_PRICE>
<CURRENCY>EURO</CURRENCY>
</ITEM>
</CHECK_ITEM_OUT>

When I am trying to read the <BRAND>FIRESTONE</BRAND> (In Third item
in the list), I am getting the “Unexpected end of file while parsing
Name has occurred†exception. I am able to read the values from
<BRAND> element for first two elements.
Following is the code I am using for reading the xml.

case "BRAND":
if (!xmlTextReader.IsEmptyElement)
productInfo.Brand =
xmlTextReader.ReadElementContentAsString();
break;

I also have searched net for this problem but I found nothing usefulïŒ

Please let me know if I am doing something wrong or missing on
something.

Thanks,
Anup Daware
 
M

Mark Fitzpatrick

Something to consider, is look at the Dealer_code element. Maybe try
changing it from <DEALER_CODE />
to <DEALER_CODE></DEALER_CODE>, maybe even putting some test value in
there. That's the only thing I can see different in the XML document that
may cause something strange and it does occur just before the brand element.


--

Hope this helps,
Mark Fitzpatrick
Former Microsoft FrontPage MVP 199?-2006

Hi Group,

I am facing a strange problem here:
I am trying to read xml response from a servlet using XmlTextWriter.
I am able to read the read half of the xml and suddenly an exception:
"Unexpected end of file while parsing Name has occurred" is being
thrown.

Following is the part o xml I am trying to read:
<CHECK_ITEM_OUT>
<ITEM id="">
<!-- id = [material] -->
<ITM_NUMBER>1</ITM_NUMBER>
<MATERIAL>001</MATERIAL>
<DEALER_CODE>DEL_One</DEALER_CODE>
<BRAND>Bridgestone</BRAND>
<HIERARCHY>HAR001</HIERARCHY>
<NET_PRICE>123.12</NET_PRICE>
<CURRENCY>EURO</CURRENCY>
</ITEM>
<ITEM id="">
<!-- id = [material] -->
<ITM_NUMBER>2</ITM_NUMBER>
<MATERIAL>002</MATERIAL>
<DEALER_CODE>DEL_Two</DEALER_CODE>
<BRAND>Firestone</BRAND>
<HIERARCHY>HAR002</HIERARCHY>
<NET_PRICE>453.12</NET_PRICE>
<CURRENCY>EURO</CURRENCY>
</ITEM>
<ITEM id="">
<!-- id = [material] -->
<ITM_NUMBER>3</ITM_NUMBER>
<MATERIAL>003</MATERIAL>
<DEALER_CODE />
<BRAND>FIRESTONE</BRAND>
<HIERARCHY>HAR001</HIERARCHY>
<NET_PRICE>24.12</NET_PRICE>
<CURRENCY>EURO</CURRENCY>
</ITEM>
</CHECK_ITEM_OUT>

When I am trying to read the <BRAND>FIRESTONE</BRAND> (In Third item
in the list), I am getting the "Unexpected end of file while parsing
Name has occurred" exception. I am able to read the values from
<BRAND> element for first two elements.
Following is the code I am using for reading the xml.

case "BRAND":
if (!xmlTextReader.IsEmptyElement)
productInfo.Brand =
xmlTextReader.ReadElementContentAsString();
break;

I also have searched net for this problem but I found nothing useful?

Please let me know if I am doing something wrong or missing on
something.

Thanks,
Anup Daware
 
A

Anup Daware

Hi Mark,

Thanks for the reply and good observation too :)

I haven't included whole xml here. And I have elements like
<NET_PRICE/> prior to <DEALER_CODE/> in actual xml, this works fine.

By the way I also tried it with <DEALER_CODE></DEALER_CODE> and with
some dummy value in it, but problem didn't solve.


Thanks,
Anup
 
A

Anup Daware

Hi Group,

The problem is solved :)

Following lines were creating the problem:

StreamWriter streamWriter = new StreamWriter(responseStream);

streamWriter.Write(responseXml); //responseXml is a string

The the default buffer of StreamWriter is 4kb and the string
responseXml is more than that, thus only a portion of my xml was being
used by XmlTextWriter which is using responseStream: And that was the
reason of Unexpected end of file while parsing Name has occurred
exception.



Solution:


Rather than using the the StreamWriter, I directly used the
responseStream.Write; for this I converted the string to byte array.
Following is the code for it.

String responseXml = GetResponseStream(uri,
searchRequestXML);
System.Text.UTF8Encoding ob = new UTF8Encoding();
byte[] arr2 = ob.GetBytes(responseXml);
responseStream.Write(arr2,0,arr2.Length);
responseStream.Seek(0, SeekOrigin.Begin);
XmlTextReader xmlTextReader = new
XmlTextReader(responseStream)




Well the conclusion is StreamWriter has a default size of 4KB which is
not increased dynamically, and this is really unexpected.

Best Regards,
Anup Daware


Hi Mark,

Thanks for the reply and good observation too :)

I haven't included whole xml here. And I have elements like
<NET_PRICE/> prior to <DEALER_CODE/> in actual xml, this works fine.

By the way I also tried it with <DEALER_CODE></DEALER_CODE> and with
some dummy value in it, but problem didn't solve.

Thanks,
Anup

Something to consider, is look at the Dealer_code element. Maybe try
changing it from <DEALER_CODE />
to <DEALER_CODE></DEALER_CODE>, maybe even putting some test value in
there. That's the only thing I can see different in the XML document that
may cause something strange and it does occur just before the brand element.

Hope this helps,
Mark Fitzpatrick
Former Microsoft FrontPage MVP 199?-2006
"Anup Daware" <[email protected]> wrote in message
Hi Group,
I am facing a strange problem here:
I am trying to read xml response from a servlet using XmlTextWriter.
I am able to read the read half of the xml and suddenly an exception:
"Unexpected end of file while parsing Name has occurred" is being
thrown.
Following is the part o xml I am trying to read:
<CHECK_ITEM_OUT>
<ITEM id="">
<!-- id = [material] -->
<ITM_NUMBER>1</ITM_NUMBER>
<MATERIAL>001</MATERIAL>
<DEALER_CODE>DEL_One</DEALER_CODE>
<BRAND>Bridgestone</BRAND>
<HIERARCHY>HAR001</HIERARCHY>
<NET_PRICE>123.12</NET_PRICE>
<CURRENCY>EURO</CURRENCY>
</ITEM>
<ITEM id="">
<!-- id = [material] -->
<ITM_NUMBER>2</ITM_NUMBER>
<MATERIAL>002</MATERIAL>
<DEALER_CODE>DEL_Two</DEALER_CODE>
<BRAND>Firestone</BRAND>
<HIERARCHY>HAR002</HIERARCHY>
<NET_PRICE>453.12</NET_PRICE>
<CURRENCY>EURO</CURRENCY>
</ITEM>
<ITEM id="">
<!-- id = [material] -->
<ITM_NUMBER>3</ITM_NUMBER>
<MATERIAL>003</MATERIAL>
<DEALER_CODE />
<BRAND>FIRESTONE</BRAND>
<HIERARCHY>HAR001</HIERARCHY>
<NET_PRICE>24.12</NET_PRICE>
<CURRENCY>EURO</CURRENCY>
</ITEM>
</CHECK_ITEM_OUT>
When I am trying to read the <BRAND>FIRESTONE</BRAND> (In Third item
in the list), I am getting the "Unexpected end of file while parsing
Name has occurred" exception. I am able to read the values from
<BRAND> element for first two elements.
Following is the code I am using for reading the xml.
case "BRAND":
if (!xmlTextReader.IsEmptyElement)
productInfo.Brand =
xmlTextReader.ReadElementContentAsString();
break;
I also have searched net for this problem but I found nothing useful?
Please let me know if I am doing something wrong or missing on
something.
Thanks,
Anup Daware
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,576
Members
45,054
Latest member
LucyCarper

Latest Threads

Top