Parse XML to Context back?
Hello,
I am developing a interactive form from webdynpro ABAP.
I converted my_context to XML by using TO_XML, fine.
But, now i would like to do,
1) Modify some elements/attributes/components data of received XML (for example, BANK_NAME from BANK_1 to BANK_2)?
2) Then, i want to convert this XML to my_context back parsing?
Pls. let me know How can i get it achieve these 2 questions? I saw below, but, dont know how can replicate/implement/use(pass params) in my case?
How to convert XML to Webdynpro Context
Thank you
Hi ,
Kindly go through this link below:
Upload XML to internal table and vice versa in SAP 4.6C
Hope it helps
Regrds
Mansi
Similar Messages
-
JSF - XML - Parse XML Document in backing bean.
Hello:
I'm trying to parse an XML text, readed from DB Table, everything was working OK
until somebody adds and XML with some values that makes the DOMParser raise
an exception, but, are valid values to our applications.
This is the example:
<Audit>
<PreviousValues>
<Table name="OFFICES">
<Column theName="ID" theValue="1"/>
<Column theName="OFFICE_NAME" theValue="TEST"/>
<Column theName="STATUS" theValue="AC"/>
<Column theName="ADDRESS" theValue="&&"/>
<Column theName="MANAGER" theValue="AA"/>
</Table>
</PreviousValues>
</Audit>
Note the value in bold, this chars are valid in this field, so we can't restrict the user
to type before the xml is generated, and when we try to parse it, we got an
exception like this:
XMLParseException: Expected name instead of &
When we remove this values manually in the DB and put some numbers, and try
to parse it again, it works ok. This is the code that parse the xml.
String xml = (String)requesScope.get("xml");
DOMParser theParser = new DOMParser();
theParser.setValidationMode(theParser.NONVALIDATING);
theParser.setPreserveWhitespace(false);
theParser.retainCDATASection(true);
Reader r = new StringReader(xml);
System.out.println(theParser.nameSpaceSeparator);
theParser.parse(r);
the last line is the one that raise the exception.
Please help.
thnks in advance.repost
help please -
LO Error 26005 Failed to parse XML
Good Afternoon,
I currently have an Xcelsius document that is attached to a Crystal Report that is in Infoview. I have it connected by using Live Office. The Crystal report basically contains a cross tab of data and is run nightly in our system. I bring back the data into Excel in order to build an Xcelsius document off of it. I havent' been using the Live Office piece all that much until recently therefore please excuse my ignorance. I setup my data connection as a Live Office connection. My server connection seems to be correct:
http://WHGCRYSTAL3:8080/dswsbobje/services/session
However, when I try to refresh the document, I get the following error:
soapenv:Server.generalException: Failed to parse XML. (LO 26005)
Any ideas as to what this could be? I have Crystal Xcelsius Enterprise 2008. The version is 5.0.0.99 and the build number is 12,0,0,121. I think I am all updated on service packs but I could be wrong. Any help is appreciated.I downloaded all of the service packs and fixes and now I am up to date. I am still getting the error with an additional error. This is what is says:
Failed to parse XML. (LO 26005) (LO 26000)
Any other ideas as to why this is happening? -
Need help on parsing xml file...
Hi all,
I need to collect some data from an Xml file using java. I have the following code with me but I am unable to get the required result. I am unable to get the data from the tags belonging to the header and footer elements. Please find the code and the sample xml file below.
Program to parse XML:
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class JobLogDetails3{
//No generics
List myJobs;
Document dom;
public JobLogDetails3(){
//create a list to hold the job objects
myJobs = new ArrayList();
public void runJobDetails() {
//parse the xml file and get the dom object
parseXmlFile();
//get each joblog element and create a job object
parseDocument();
//Iterate through the list and print the data
printData();
private void parseXmlFile(){
//get the factory
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
//Using factory get an instance of document builder
DocumentBuilder db = dbf.newDocumentBuilder();
//parse using builder to get DOM representation of the XML file
dom = db.parse("test.xml");
}catch(ParserConfigurationException pce) {
pce.printStackTrace();
}catch(SAXException se) {
se.printStackTrace();
}catch(IOException ioe) {
ioe.printStackTrace();
private void parseDocument(){
//get the root elememt
Element docEle = dom.getDocumentElement();
//get a nodelist of <joblog> elements
NodeList nl = dom.getElementsByTagName("*");
if(nl != null && nl.getLength() > 0) {
for(int i = 0 ; i < nl.getLength();i++) {
//get the joblog element
Element el = (Element)nl.item(i);
//get the joblog object
Job J = getJob(el);
//add it to list
myJobs.add(J);
* I take an joblog element and read the values in, create
* an joblog object and return it
* @param JobEl
* @return
private Job getJob(Element JobEl) {
//for each <joblog> element get text or int values of
//name ,id, age and name
String jobServer = getTextValue(JobEl,"server");
String jobName = getTextValue(JobEl,"name");
String jobClient = getTextValue(JobEl,"machine_name");
String jobStart = getTextValue(JobEl,"start_time");
String jobType = getTextValue(JobEl,"type");
String jobEnd = getTextValue(JobEl,"end_time");
String jobSize = getTextValue(JobEl,"new_processed_bytes");
//Create a new Job with the value read from the xml nodes
Job J = new Job(jobServer,jobName,jobClient,jobStart,jobType,jobEnd,jobSize);
return J;
* I take a xml element and the tag name, look for the tag and get
* the text content
* i.e for <employee><name>John</name></employee> xml snippet if
* the Element points to employee node and tagName is name I will return John
* @param ele
* @param tagName
* @return
private String getTextValue(Element ele, String tagName) {
String textVal = null;
NodeList nl = ele.getElementsByTagName(tagName);
if(nl != null && nl.getLength() > 0) {
Element el = (Element)nl.item(0);
textVal = el.getFirstChild().getNodeValue();
return textVal;
* Calls getTextValue and returns a int value
* @param ele
* @param tagName
* @return
private int getIntValue(Element ele, String tagName) {
//in production application you would catch the exception
return Integer.parseInt(getTextValue(ele,tagName));
* Iterate through the list and print the
* content to console
private void printData(){
System.out.println("No of Jobs '" + myJobs.size() + "'.");
Iterator it = myJobs.iterator();
while(it.hasNext()) {
System.out.println(it.next().toString());
public static void main(String[] args){
//create an instance
JobLogDetails JLD = new JobLogDetails();
//call run example
JLD.runJobDetails();
Job Class
public class Job {
private String jobServer;
private String jobName;
private String jobClient;
private String jobStart;
private String jobType;
private String jobEnd;
private String jobSize;
public Job(){
public Job(String jobServer,String jobName,String jobClient,String jobStart,String jobType,String jobEnd,String jobSize ) {
this.jobServer = jobServer;
this.jobName = jobName;
this.jobClient = jobClient;
this.jobStart = jobStart;
this.jobType = jobType;
this.jobEnd = jobEnd;
this.jobSize = jobSize;
public String getjobServer() {
return jobServer;
public void setjobServer(String jobServer) {
this.jobServer = jobServer;
public String getjobName() {
return jobName;
public void setjobname(String jobName) {
this.jobName = jobName;
public String getjobClient() {
return jobClient;
public void setjobClient(String jobClient) {
this.jobClient = jobClient;
public String getjobStart() {
return jobStart;
public void setjobStart(String jobStart) {
this.jobStart = jobStart;
public String getjobType() {
return jobType;
public void setjobType(String jobType) {
this.jobType = jobType;
public String getjobEnd() {
return jobEnd;
public void setjobEnd(String jobEnd) {
this.jobEnd = jobEnd;
public String getjobSize() {
return jobSize;
public void setjobSize(String jobSize) {
this.jobSize = jobSize;
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append(getjobServer());
sb.append(",");
sb.append(getjobName());
sb.append(",");
sb.append(getjobClient());
sb.append(",");
sb.append(getjobType());
sb.append(",");
sb.append(getjobStart());
sb.append(",");
sb.append(getjobEnd());
sb.append(",");
sb.append(getjobSize());
sb.append(",");
return sb.toString();
Sample XML File:
<?xml version="1.0" encoding="UTF-16" ?>
- <joblog>
<job_log_version version="2.0" />
- <header>
<filler>======================================================================</filler>
<server>Job server: TGBBAK</server>
<name>Job name: TGBSAP4-SQL-SQL DB Servers S2T - High-Weekly Full Backup</name>
<start_time>Job started: 26 September 2011 at 01:00:04</start_time>
<type>Job type: Backup</type>
<log_name>Job Log: GFD_TGBBAK_71887.xml</log_name>
<filler>======================================================================</filler>
</header>
<media_mount_date>Drive and media mount requested: 26/09/2011 01:00:04</media_mount_date>
- <media_drive_and_media_info>
<media_mount_date>Drive and media information from media mount: 26/09/2011 01:00:39</media_mount_date>
<robotic_library_name>Robotic Library Name: HP 1</robotic_library_name>
<drive_name>Drive Name: LTO4_2</drive_name>
<slot>Slot: 43</slot>
<media_label>Media Label: 000059L</media_label>
<media_guid>Media GUID: {a6ca0062-7a6f-4b4b-8144-732ca25f2f9d}</media_guid>
<media_overwrite_date>Overwrite Protected Until: 25/10/2011 19:24:58</media_overwrite_date>
<media_append_date>Appendable Until: 02/10/2011 14:00:30</media_append_date>
<media_set_target>Targeted Media Set Name: Weekly Tape</media_set_target>
</media_drive_and_media_info>
- <backup>
<filler>======================================================================</filler>
<title>Job Operation - Backup</title>
<append_or_overwrite>Media operation - append.</append_or_overwrite>
<compression>Compression Type: Hardware [if available, otherwise none]</compression>
<verify_option>WARNING: The option 'Verify after backup completes' was not selected. Performing a verify operation to make sure that media can be read after the backup has completed is recommended.</verify_option>
<filler>======================================================================</filler>
- <machine>
<machine_name>TGBSAP4.Tetley.Grp</machine_name>
<info>Network control connection is established between 10.22.2.18:3271 <--> 10.22.2.4:10000</info>
<info>Network data connection is established between 10.22.2.18:3301 <--> 10.22.2.4:3094</info>
- <set>
<set_resource_name>TGBSAP4.Tetley.Grp</set_resource_name>
<tape_name>Family Name: "Media created 25/09/2011 13:59:55"</tape_name>
- <volume>
<display_volume>Backup of "TGBSAP4.Tetley.Grp "</display_volume>
</volume>
<description>Backup set #45 on storage media #1 Backup set description: "Weekly Full Backup"</description>
<backup_type>Backup Method: Full - Back up entire database or filegroup</backup_type>
<agent_started>Microsoft SQL Server Agent: Started</agent_started>
<start_time>Backup started on 26/09/2011 at 01:01:45.</start_time>
- <database>
<database>Database PRD</database>
</database>
- <database>
<database>Database master</database>
</database>
- <database>
<database>Database model</database>
</database>
- <database>
<database>Database msdb</database>
</database>
<end_time>Backup completed on 26/09/2011 at 02:42:25.</end_time>
- <summary>
<backed_up_database>Backed up 4 databases</backed_up_database>
<new_processed_bytes>Processed 573363576542 bytes in 1 hour, 40 minutes, and 40 seconds.</new_processed_bytes>
<vlm_hist_rateformat2>Throughput rate: 5432 MB/min</vlm_hist_rateformat2>
</summary>
<filler>----------------------------------------------------------------------</filler>
</set>
</machine>
</backup>
- <footer>
<filler>======================================================================</filler>
<end_time>Job ended: 26 September 2011 at 02:43:12</end_time>
<engine_completion_status>Job completion status: Successful</engine_completion_status>
<filler>======================================================================</filler>
<completeStatus>19</completeStatus>
</footer>
</joblog>1. your code does not compile (in your main method you try to create an instance of a class which does not exist).
2. your XML document is not well formed.
+[Fatal Error] test.xml:34:74: The content of elements must consist of well-formed character data or markup.+
org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.
Maybe there are other problems but you can start by fixing these. -
Parsing XML in a Custom Class Problem
Hi, I am trying to parse an XML file from a class within my web app. It isn't a servlet, just a custom class to parse the xml.
However, I keep getting a null document printed when I try to print the document to the log file. This is the class:public class XMLParser
Document document;
public XMLParser()
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(true);
factory.setNamespaceAware(true);
try
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(new File("SiteDescriptor.xml"));
catch(SAXException sxe)
// Error generated during parsing
Exception x = sxe;
if(sxe.getException() != null)
x = sxe.getException();
x.printStackTrace();
catch(ParserConfigurationException pce)
pce.printStackTrace();
catch(IOException ioe)
ioe.printStackTrace();
System.out.println("\n\n\n\n\n\n\n"+document+"\n\n\n\n\n");
}I know this code works as I use the exactly the same code in another application with the same XML file.
This is the XML file:
<root host="http://localhost:8080">
<branch name="Home Page" shortname="/" type="Home Page" instanceid="44987" typeid="1227">
<branch name="Films Archive" shortname="/films" type="Branch" instanceid="96354" typeid="1778">
<leaf name="Evil Dead" shortname="/films/evil_dead" type="Films" instanceid="58985" typeid="1147"/>
<leaf name="1984" shortname="/films/1984" type="Films" instanceid="49741" typeid="1147" />
</branch>
</branch
</root>And this is what I get when i print the document to the log file:
[#document: null]
Does anyone know why I cant get the class to read the document? I'm not getting any file not found exceptions or any other errors in the log.
Cheers,
PaulHi duffymo, I have tried as you suggested. I created a ServletContextListener implementation and in my web.xml file I have defined the XML file as a <context-param> and I have also defined the listener.
The ServletContextListener implementation creates the XML file as a resource using getResourceAsStream() and passes the InputStream to my parser. However, the parser still doesn't seem to work and prints out a null document in the log file: [#document: null]. Any ideas??
The web.xml file:
<context-param>
<param-name>siteDescriptor</param-name>
<param-value>/WEB-INF/SiteDescriptor.xml</param-value>
</context-param>
<listener>
<listener-class>cms.beans.InitializeXML</listener-class>
</listener>
......and the ServletContextListener is:
public class InitializeXML implements ServletContextListener
static InputStream in = null;
public void contextInitialized(ServletContextEvent sce)
ServletContext context = sce.getServletContext();
String siteDescriptor = context.getInitParameter("siteDescriptor");
try
in = context.getResourceAsStream(siteDescriptor);
catch(Exception e)
context.log("Error creating xml resource: " + e);
public void contextDestroyed(ServletContextEvent sce)
public static InputStream getXMLResource()
return in;
}Thanks,
Paul -
Can't parse xml from applet using dom on linux on Netscape 7 using jre 1.4.
Hi,
I can't seem to parse xml from an applet on linux on Netscape 7 using the JRE 1.4.
My code looks like the following:
StringBufferInputStream is = new StringBufferInputStream("<foo></foo>");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try
builder = factory.newDocumentBuilder();
domDocument = builder.parse(is); // this line creates an exception
catch (Exception e)
System.out.println(e);
This code works fine from an applet on windows. On linux, the error message is:
java.security.AccessControlException: access denied (java.util.PropertyPermission entityExpansionLimit read)
I've tried both JRE 1.4.0_04 and 1.4.1_03
Thanks!
QThere's another posting about this same problem (platform unspecified), but the same error message. I was also having this problem (Windows 1.4.03) and swithced back to 1.4.01 and the problem went away. In the future, I may sign my applets to get a more generous security policy. But, I'm sure it'll be a lot of work (vs. a line of code somewhere).
-
Parsing XML from a session bean
Hi,
I am trying to use a Sax parser for parsing xml received from a back end
legacy system. The code is executed from a Session bean.
Debugging learned me that the parse() method on the parser hangs the
container without any error or exception trace. The code works fine outside
a container.
All help will be highly appreciated.
KurtI found out that the InputStream implementation used parsing source inside
the container is different
then from the one outside (other type of VM of course!). The Weblogic
implementation blocks at the end of
the stream, while the normal SUN JDK 1.3 returns. This is not a bug, the bug
I found is in my proxy that allows
the connection to the backend. This proxy allows HTTP connections, and I
parse the XML received over HTTP.
Regards,
Kurt
"Todd Karakashian" <[email protected]> wrote in message
news:[email protected]..
That's seems odd. Perhaps there is something going on in your document
handler code that triggers a hang in the environment of the server.
When you see the hang, instruct the VM to give you a thread dump (type
control-<break> on Windows, <control>-\ (backslash) on UNIX in the
window in which the server is running; the results are dumped to
stderr). That will show what every thread in the server is doing. If you
email or post the thread dump, I will take a look at it and see if I can
see what is going on. Also, let us know which platform, VM, parser, and
WebLogic version you are using.
Regards,
-Todd
Kurt Quirijnen wrote:
Hi,
I am trying to use a Sax parser for parsing xml received from a back end
legacy system. The code is executed from a Session bean.
Debugging learned me that the parse() method on the parser hangs the
container without any error or exception trace. The code works fine
outside
a container.
All help will be highly appreciated.
Kurt--
Todd Karakashian
BEA Systems, Inc.
[email protected] -
i wrote java client to invoke webservice(TIBCO) as a result i am getting back xml. now i have to parse xml and use the information. can anyone pls advise on this.
thanksThere are two kinds of parser available. One converts the XML to a Document Object Model (DOM). This is a heirarchy of Node objects each of which represents an element of XML, a tag, an attribute a piece of text etc.. Then you walk the graph extracting what you want.
The other kind is the SAX event parser. You give this a callback (extends DefaultHandler) and it calls appropriate methods for each element as it's encountered.
The second method is probably slight more complex to use but will deal with files of unlimited size without huge memory usage.
In both cases you get the parser using a Factory/Interface pattern. You'll find the factory classes in javax.xml.parsers. The rest of the DOM stuff is in org.w3c.dom and the SAX stuff in org.xml.sax. -
How to parse XML for internal table
hi guys, I would like to know how to parse xml for an internal table. I explain myself.
Let's say you have a purchase order form where you have header data & items data. In my interactive form, the user can change the purchase order quantity at the item level. When I received back the pdf completed by mail, I need to parse the xml and get the po qty that has been entered.
This is how I do to get header data from my form
lr_ixml_node = lr_ixml_document->find_from_name( name = ''EBELN ).
lv_ebeln = lr_ixml_node->get_value( ).
How do we do to get the table body??
Should I used the same method (find_from_name) and passing the depth parameter inside a do/enddo?
thanks
Alexandre GiguereAlexandre,
Here is an example. Suppose your internal table is called 'ITEMS'.
lr_node = lr_document->find_from_name('ITEMS').
lv_num_of_children = lr_node->num_children( ).
lr_nodechild = lr_node->get_first_child( ).
do lv_num_of_children times.
lv_num_of_attributes = lr_nodechild->num_children( ).
lr_childchild = lr_nodechild->get_first_child( ).
do lv_num_of_attributes times.
lv_value = lr_childchild->get_value( ).
case sy-index.
when 1.
wa_item-field1 = lv_value
when 2.
wa_item-field2 = lv_value.
endcase.
lr_childchild = lr_childchild->get_next( ).
enddo.
append wa_item to lt_item.
lr_nodechild = lr_nodechild->get_next( ).
enddo. -
what is the best method for loading external XML (with
inherent HTML) content into Flash and into the TextArea component?
here is the requirement:
i have an image loader and a TextArea together on the screen.
a "story" is loaded which will present a series of images (in the
image loading) associated with a corresponding text (in the
TextArea). a "story" has multiple image/text sections that are
navigatied through with FRWD/BACK buttons. any given section can
also have multiple sub-sections or "frames".
here is a diagram of the flow (in this case there would be 5
click throughs: 5 text/image sequences, but all contained only
within 4 sections):
http://jalaka.com/lab/ia/story_nav.jpg
below is my proposed sample XML structure. i want Flash to
recognize how many sections and frames within sections there are in
each story XML document - in order to generate a corresponding
navigation structure (a tab for each section). HTML content will be
immediate availble to loadinto TextArea as user move forward in
sequence with nav. and images references can also be preloaded into
available MC containers to be swapped into place as user navigates
forward in sequence. also need to read and store attributes for
each node in the XML to come up in MCs in sequence. and must also
be able to parse XML in a way to place simple HTML formatted
content (within XML) into the TextArea.
would Arrays be used?
<story title = "Story Title">
<section num = "1" title = "Section One Title" >
<frame image = "1.jpg" caption = "caption text
here"><b>Content</b><br><br>content
content content</frame>
</section>
<section num = "2" title = "Section Two Title" >
<frame image = "1.jpg" caption = "caption text
here"><b>Content</b><br><br>content
content content</frame>
<frame image = "2.jpg" caption = "caption text
here"><b>Content</b><br><br>content
content content</frame>
</section>
</story>Placing the XML into an array is a great plan. What you want
is each array element to be an object containing the section data.
Another plan is to use a List or Combox component. Again each
data property element would be an object containing the section
data. -
OSB download 250 MG file results in error Error parsing XML: {err}FORG0005
Hi,
Using OSB 11.1.1.5. I have service to download files from Oracle ECM. Running into an issue where the file size is over 250 MB service is failing. Giving me an error
OSB Replace action failed updating variable "body": Error parsing XML: {err}FORG0005: expected exactly one item, got 0 items
I have service callout to get the binary content of the file and it's taking over 5 minutes and then this error. I also set Read Timeout and Connection Timeout to 20 seconds at the business service level
but looks like it's not taking that timeout values and still waiting over 5 minutes before it dies. My JTA Timeout is set to 12 minutes. After service callout I have a log to write the output but it's not even getting there and throwing that error above
How can I trap that kind of errors. How can I set timeout at service level i.e. if after 1 minute if the file is still downloading close the connection etc.
I don't want to have some many open threads in the back ground as this service is being called in a loop to download files. Smaller files like 30 MG downloads fine but the larger ones are not.
I have a error hndler at the root level but the error is not trapped there either. Looks like system errors are not getting trapped.
So Just wondering if OSB is suitable to download that huge files.
ThanksThe reason for the error is the xquery is not able to find the values in the input... Check the input and namespaces...
Try...
<ns1:value1>{ data($addition1/ns0:value1) }</ns1:value1>
<ns1:value2>{ data($addition1/ns0:value2) }</ns1:value2>Cheers,
Vlad -
Parsing xml payload and edit it
Hi
I am trying to parse xml payload in sender side.I have inserted a stateless session bean before " local ejbs call sap adapter".But changes made to string are not reflected in xml file.The code written in ejb is as follows
package com.cts.xi;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.ejb.CreateException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import com.sap.aii.af.mp.module.Module;
import com.sap.aii.af.mp.module.ModuleContext;
import com.sap.aii.af.mp.module.ModuleData;
import com.sap.aii.af.ra.ms.api.Message;
import com.sap.aii.af.ra.ms.api.PayloadFormatException;
import com.sap.aii.af.ra.ms.api.XMLPayload;
@ejbLocal <{com.cts.xi.EjbLocal}>
@ejbLocalHome <{com.cts.xi.EjbLocalHome}>
@stateless
@transactionType Container
public class EjbBean implements SessionBean, Module {
public void ejbRemove() {
public void ejbActivate() {
public void ejbPassivate() {
public void setSessionContext(SessionContext context) {
myContext = context;
private SessionContext myContext;
Create Method.
public void ejbCreate() throws CreateException {
// TODO : Implement
/* (non-Javadoc)
@see com.sap.aii.af.mp.module.Module#process(com.sap.aii.af.mp.module.ModuleContext, com.sap.aii.af.mp.module.ModuleData)
public ModuleData process(ModuleContext mc, ModuleData md) {
// TODO Auto-generated method stub
Message msg = (Message) md.getPrincipalData();
XMLPayload pl = msg.getDocument();
String str = null;
String str1 = null;
int m = 0;
str = new String(pl.getContent());
/*int[] ra = null;
for (int i = 0; i < 4; i++) {
ra<i> = Integer.parseInt(mc.getContextData("rate"));
try {
File f1 = new File("
pciib04530
USERS
piyush
test1.xml");
FileOutputStream fout1;
fout1 = new FileOutputStream(f1);
fout1.write(str.getBytes());
fout1.close();
} catch (RuntimeException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
Document doc = DocumentHelper.parseText(str);
Element root = doc.getRootElement();
str1 = traverseXML(root, str1,m);
} catch (DocumentException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
try {
File f6 = new File("
pciib04530
USERS
piyush
test6.txt");
FileOutputStream fout6;
fout6 = new FileOutputStream(f6);
//fout2.write(rt.getBytes());
//fout2.write(str1.getBytes());
//fout2.write(str2.getBytes());
//fout2.write(str3.getBytes());
fout6.write(str1.getBytes());
fout6.close();
} catch (FileNotFoundException e4) {
// TODO Auto-generated catch block
e4.printStackTrace();
} catch (IOException e4) {
// TODO Auto-generated catch block
e4.printStackTrace();
try {
pl.setText(str);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
msg.setDocument(pl);
} catch (PayloadFormatException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
md.setPrincipalData(msg);
return md;
@param root
@param str1
private String traverseXML(Element e, String str1,int m) {
// TODO Auto-generated method stub
int spc = 0;
String tmp = null;
String tmp1 = null;
tmp1 = str1;
tmp = e.getName();
String tmp3 = new String("SIPIR");
if (tmp3.equals(e.getName())) {
int l = Integer.parseInt(e.getStringValue());
e.setName("SI");
int k = l * 3;
m++;
str1 += tmp;
/*for(int i=0;i<e.nodeCount();i++){
Element e1=e.elements().get(i);
for (int j = 0; j < e.attributeCount(); j++) {
str1 += e.attribute(j).getName();
str1 += e.attribute(j).getData();
for (int i = 0; i < e.elements().size(); i++) {
Element e1 = (Element) e.elements().get(i);
spc += 3;
traverseXML(e1, str1,m);
spc -= 3;
return str1;
Thanking you in advance.
Regards
piyushxml or plist , just the extension differs.(Both are Extended Markup Language).
If u want to edit it manually - u can use property list editor (which is in XCode )
or u can open with dashcode , which can be edited easily.
If ur question was to edit dynamically.
U can do that with write to file functionality.
For example u may check this.
http://www.iphonedevsdk.com/forum/iphone-sdk-development/1613-read-write-create- data-files.html -
i wrote java client to invoke webservice(TIBCO) as a result i am getting back xml. now i have to parse xml and use the information. can anyone pls advise on this.
thanksCross-post
http://forum.java.sun.com/thread.jspa?threadID=706827 -
How to generate GUI code from parsed XML file?
hai,
I have to generate GUI code after parsing any configuration XML file as input.Now i have parsed my XML file and got its attributed and i want to get some idea of how to map the parsed XML attributes to the java code to build GUI code.Hello,
1. I like to create data type from a XML file structure, which contains the data structure ?
XML fields will need to be taken note of to see which is repeating or not. You can also load the XML into a third-party tool such as Altova XML Spy and then generate an XSD from there. You will need to import the XSDs into PI under external definitions. However, this does not guarantee business interoperability, as such, it is always best to ask the provider for the XSDs or WSDL. It will also save you a lot of time from guessing which fields are needed or not.
2. How to create custom node function in graphical mapping editor ?
In your graphical mapping editor, on the lowest left corner, there is an icon there that says Create New Function. You must take into account their return types:
1. Single Values = String
2. Queue/Context (no return type) thus resultList is used.
Hope this helps,
Mark -
Script for parsing xml data and inserting in DB
Thank you for reading.
I have the following example XML in an XML file. I need to write a script that can insert this data into an Oracle table. The table does not have primary keys. The data just needs to be inserted.
I do not have xsd file in this scenario. Please suggest how to modify Method 1 https://community.oracle.com/thread/1115266?tstart=0 mentioned so that I can call the XML mentioned below and insert into a table
Method 1
Create or replace procedure parse_xml is
l_bfile BFILE;
l_clob CLOB;
l_parser dbms_xmlparser.Parser;
l_doc dbms_xmldom.DOMDocument;
l_nl dbms_xmldom.DOMNodeList;
l_n dbms_xmldom.DOMNode;
l_file dbms_xmldom.DOMNodeList;
l_filen dbms_xmldom.DOMNode;
lv_value VARCHAR2(1000);
l_ch dbms_xmldom.DOMNode;
l_partname varchar2(100);
l_filename varchar2(1000);
l_temp VARCHAR2(1000);
TYPE tab_type IS TABLE OF tab_software_parts%ROWTYPE;
t_tab tab_type := tab_type();
BEGIN
l_bfile := BFileName('DIR1', 'SoftwareParts.xml');
dbms_lob.createtemporary(l_clob, cache=>FALSE);
dbms_lob.open(l_bfile, dbms_lob.lob_readonly);
dbms_lob.loadFromFile(dest_lob => l_clob, src_lob => l_bfile, amount => dbms_lob.getLength(l_bfile));
dbms_lob.close(l_bfile);
dbms_session.set_nls('NLS_DATE_FORMAT','''DD-MON-YYYY''');
l_parser := dbms_xmlparser.newParser;
dbms_xmlparser.parseClob(l_parser, l_clob);
l_doc := dbms_xmlparser.getDocument(l_parser);
dbms_lob.freetemporary(l_clob);
dbms_xmlparser.freeParser(l_parser);
l_nl := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(l_doc),'/PartDetails/Part');
FOR cur_emp IN 0 .. dbms_xmldom.getLength(l_nl) - 1 LOOP
l_n := dbms_xmldom.item(l_nl, cur_emp);
t_tab.extend;
dbms_xslprocessor.valueOf(l_n,'Name/text()',l_partname);
t_tab(t_tab.last).partname := l_partname;
l_file := dbms_xslprocessor.selectNodes(l_n,'Files/FileName');
FOR cur_ch IN 0 .. dbms_xmldom.getLength(l_file) - 1 LOOP
l_ch := dbms_xmldom.item(l_file, cur_ch);
lv_value := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(l_ch));
if t_tab(t_tab.last).partname is null then t_tab(t_tab.last).partname := l_partname; end if;
t_tab(t_tab.last).filename := lv_value;
t_tab.extend;
END LOOP;
END LOOP;
t_tab.delete(t_tab.last);
FOR cur_emp IN t_tab.first .. t_tab.last LOOP
if t_tab(cur_emp).partname is not null and t_tab(cur_emp).filename is not null then
INSERT INTO tab_software_parts
VALUES
(t_tab(cur_emp).partname, t_tab(cur_emp).filename);
end if;
END LOOP;
COMMIT;
dbms_xmldom.freeDocument(l_doc);
EXCEPTION
WHEN OTHERS THEN
dbms_lob.freetemporary(l_clob);
dbms_xmlparser.freeParser(l_parser);
dbms_xmldom.freeDocument(l_doc);
END;
<TWObject className="TWObject">
<array size="240">
<item>
<variable type="QuestionDetail">
<questionId type="String"><![CDATA[30]]></questionId>
<questionType type="questionType"><![CDATA[COUNTRY]]></questionType>
<country type="String"><![CDATA[GB]]></country>
<questionText type="String"><![CDATA[Please indicate]]></questionText>
<optionType type="String"><![CDATA[RadioButton]]></optionType>
<answerOptions type="String[]">
<item><![CDATA[Yes]]></item>
<item><![CDATA[No]]></item>
</answerOptions>
<ruleId type="String"><![CDATA[CRP_GB001]]></ruleId>
<parentQuestionId type="String"></parentQuestionId>
<parentQuestionResp type="String"></parentQuestionResp>
</variable>
</item>
<item>
<variable type="QuestionDetail">
<questionId type="String"><![CDATA[40]]></questionId>
<questionType type="questionType"><![CDATA[COUNTRY]]></questionType>
<country type="String"><![CDATA[DE]]></country>
<questionText type="String"><![CDATA[Please indicate]]></questionText>
<optionType type="String"><![CDATA[RadioButton]]></optionType>
<answerOptions type="String[]">
<item><![CDATA[Yes]]></item>
<item><![CDATA[No]]></item>
</answerOptions>
<ruleId type="String"><![CDATA[CRP_Q0001]]></ruleId>
<parentQuestionId type="String"></parentQuestionId>
<parentQuestionResp type="String"></parentQuestionResp>
</variable>
</item>
</array>
</TWObject>Reposted as
Script to parse XML data into Oracle DB
Maybe you are looking for
-
I use my 6th generation Ipod strictly for Audible downloads. In the past, I have been able to move titles back and forth from the Ipod and my Itunes library, to control the amount books on the ipod. Recently, an exclamation mark has appeared next t
-
Why can't I get my iPad to connect via bluetooth to my iPhone 5s?
I never have been able to get my iPhone 4s or the new iPhone 5s to connect with my iPad via Bluetooth. Both are running the latest 7.0.3 software.
-
Determination of current exchange rate in the cancellation billing document
Hi All, I have a requirement which I have described below. It would be helpful if you can mail your suggestions on the below. Existing logic in SAP: While CANCELLING a billing document(VF11), system copies the exchange rate from the original billing
-
Ever since I updated to the new Firefox sync my bookmarks have stopped showing up on my iphone Sync for Firefox. I even downloaded the Apollo browser, but bookmarks still are not showing. Can someone help?
-
Firefox hangs or crashes when setting iframe src to a pdf via javascript. Works fine in all previous versions of Firefox. This is using the most recent version of Adobe Reader 9. == This happened == Every time Firefox opened == I upgraded to Firefox