Help for Parsing XML like HTML Document
I have documents that start with
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
I want to process these documents with a XML Parser.Microsoft XML Parser works well with it.Can I use DOM parser in Java to process such kind of documents?
What Jar file I need to use to access such APIs?
Yes, XHTML is XML so you can read it with any XML parser.
And Java already has XML parsers built in. You don't need any jar files.
Similar Messages
-
Having parsing xml like below into a struct.
I'm having parsing xml like below into a struct. I tried this function but that just gives me the 1st <Condition's attribute in a resultant struct
<taskConditions>
<Condition name="TUESDAY" conditionEnabled="1" />
<Condition name="THURSDAY" conditionEnabled="1" />
</taskConditions>
ASTR
Condition [, ]
[1]
[2]
Condition_attributes
conditionEnabled 1
name TUESDAY
What happend tp the thursday attributes ?
thanksah, very cool
xml document [short version]
XmlComment
XmlRoot
xml element
XmlName
taskConditions
XmlNsPrefix
XmlNsURI
XmlText
XmlComment
XmlAttributes
struct [empty]
XmlChildren
xml element
XmlName
Condition
XmlNsPrefix
XmlNsURI
XmlText
XmlComment
XmlAttributes
struct
conditionEnabled
1
name
MONDAY
XmlChildren
xml element
XmlName
Condition
XmlNsPrefix
XmlNsURI
XmlText
XmlComment
XmlAttributes
struct
conditionEnabled
1
name
TUESDAY
XmlChildren
taskConditions
XmlText
Condition
XmlText
XmlAttributes
struct
conditionEnabled
1
name
MONDAY
Condition
XmlText
XmlAttributes
struct
conditionEnabled
1
name
TUESDAY
xml document [short version]
XmlComment
XmlRoot
xml element
XmlName
taskConditions
XmlNsPrefix
XmlNsURI
XmlText
XmlComment
XmlAttributes
struct [empty]
XmlChildren
xml element
XmlName
Condition
XmlNsPrefix
XmlNsURI
XmlText
XmlComment
XmlAttributes
struct
conditionEnabled
1
name
TUESDAY
XmlChildren
xml element
XmlName
Condition
XmlNsPrefix
XmlNsURI
XmlText
XmlComment
XmlAttributes
struct
conditionEnabled
1
name
THURSDAY
XmlChildren
taskConditions
XmlText
Condition
XmlText
XmlAttributes
struct
conditionEnabled
1
name
TUESDAY
Condition
XmlText
XmlAttributes
struct
conditionEnabled
1
name
THURSDAY
xml document [short version]
XmlComment
XmlRoot
xml element
XmlName
taskConditions
XmlNsPrefix
XmlNsURI
XmlText
XmlComment
XmlAttributes
struct [empty]
XmlChildren
xml element
XmlName
Condition
XmlNsPrefix
XmlNsURI
XmlText
XmlComment
XmlAttributes
struct
conditionEnabled
1
name
WEDNESDAY
XmlChildren
taskConditions
XmlText
Condition
XmlText
XmlAttributes
struct
conditionEnabled
1
name
WEDNESDAY
I'm trying to mimic a flex filter function and I'm not sure how to implement it in a cfscript. I basicallly need to put each condidtion name ie, Tuesday into a dictionary and then in the code test for each condition ie in flex I done this:
the code I'm trying to do in cf is
var conditionsD:Dictionary=new Dictionary
for each(var o:Object in conditions)
conditionsD[o.name]=true;
From this code in flex
var conditions:ArrayCollection=convertXmlToArrayCollection(new XMLDocument(item.conditionsXML));
//create a dictionary asour conditions are strings
var conditionsD:Dictionary=new Dictionary
for each(var o:Object in conditions)
conditionsD[o.name]=true;
//now we finally validate,
if (conditionsD['SUNDAY'])
if (today.day == 0)
return true;
if (conditionsD['MONDAY'])
if (today.day == 1)
return true;
if (conditionsD['TUESDAY'])
if (today.day == 2)
return true; -
Urgently need help for parsing IP header
Hi, could anyone tell which class I should use to parsing the IP header of a packet?
Thanks many many times!> Hi, could anyone tell which class I should use to
parsing the IP header of a packet?
DatagramPacket?
> Urgently need help for parsing IP header
Don't flag your question as urgent, even if it is for you.
* We all answer questions here voluntarily, in our leisure time. We do that because doing so is fun for us, because we enjoy helping people and having interesting discussions. Guess what, it is much less fun if it gets stressful. So the last thing you want to do to get us to answer your question is to pass your stress over to us.
* People who are stressed and want a fast answer often don't even find the time to do the necessary research or to formulate their question in an easy to comprehend way. That's even less fun to work with. So you really don't want us to feel your stress. Instead you want to take your time to write a well formulated post that is fun to answer. The less likely it is for us to know that your question is urgent, the more likely you are to get a fast answer!
* The simple notion that you want your post to be answered faster than those of the other members might feel rather unfair to some of us. Doubly so because often "urgent" questions actually are homework questions. Yours might be different, but someone who had bad experiences with this type of question might not read far enough to notice. -
XML parser to parse XML inside HTML file
Hi,
I wish to know is there any other parsers apart from JAXP to parse xml content present inside HTML file. For example,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<form id="j_id_jsp_1394907664_1" name="j_id_jsp_1394907664_1" method="post" action="/msaiphoneportal1.1c/pages/xmlchech.faces;jsessionid=5666F0E1CF0E44B978940F021012AA41" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="j_id_jsp_1394907664_1" value="j_id_jsp_1394907664_1" />
<?xml version="1.0" encoding="UTF-8"?>
<hospital>
<Users>
<User id="1" password="x" type="staff" username="x"/>
<User id="2" password="y" type="staff" username="y"/>
<User id="3" password="z" type="staff" username="z"/>
</Users>
<Survey/>
<Patients>staaatus</Patients>
</hospital>
<input type="hidden" name="j_id_jsp_1394907664_1:j_id_jsp_1394907664_2" /><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="-4298162632826268059:-1507671971163298623" autocomplete="off" />
</form>
</body>
</html>
I need to read the XML content inside. Is there any way please let me know
Edited by: DHURAI on Jul 22, 2010 12:59 AMDHURAI wrote:
while reading, we can fetch the starting of XML through <?xml> tag, but how we know the ending of the XML as it seems to be dynamic.1) Extract the document root element which follows the <?xml ... ?>
2) From this root element , construct the associated root element terminal by inserting a / after the <.
3) Search for the terminal.
If the root name can also be the name of an enclosed element then you will have to count the number of terminals. -
Parsing xml file error: Document root element is missing.
Hi,
When I try to parse an xml file with SAX parser, the SAXParseException message I got is: "Document root element is missing." Anybody knows what it is? How should I fix it? Thanks a lot in advance!
J.H.An XML document has only a single root element. So after the XML header, your document must look something like this:
<tag>
</tag>
If you have more than one element like this, for example:
<tag>
</tag>
<anothertag>
</anothertag>
then you don't have a root element and your parser will give the message you referred to. -
Urgent : Need help in parsing XML from Sharepoint and save it into DB
Hi ,
I am Sharepoint guy and a newbie in Oracle . PL/SQL
I am using UTL_DBWS Package to call a Sharepoint WebService " and was sucessfull , Now the xml has to be parsed and stored into a Table. I am facing the issue as the XML has a different namesoace and normal XPATH query is not working
Below is the XML and need help in parsing it
declare
responsexml sys.XMLTYPE;
testparsexml sys.XMLTYPE;
begin
responsexml := sys.XMLTYPE('<GetListItemsResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<GetListItemsResult>
<listitems xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
<rs:data ItemCount="2">
<z:row ows_MetaInfo="1;#" ows__ModerationStatus="0" ows__Level="1" ows_Title="Test Title 1" ows_ID="1" ows_owshiddenversion="1" ows_UniqueId="1;#{9C45D54E-150E-4509-B59A-DB5A1B97E034}" ows_FSObjType="1;#0" ows_Created="2009-09-12 17:13:16" ows_FileRef="1;#Lists/Tasks/1_.000"/>
<z:row ows_MetaInfo="2;#" ows__ModerationStatus="0" ows__Level="1" ows_Title="Testing Tasks" ows_ID="2" ows_owshiddenversion="1" ows_UniqueId="2;#{8942E211-460B-422A-B1AD-1347F062114A}" ows_FSObjType="2;#0" ows_Created="2010-02-14 16:44:40" ows_FileRef="2;#Lists/Tasks/2_.000"/>
</rs:data>
</listitems>
</GetListItemsResult>
</GetListItemsResponse>');
testparsexml := responsexml.extract('/GetListItemsResponse/GetListItemsResult/listitems/rs:data/z:row/@ows_Title');
DBMS_OUTPUT.PUT_LINE(testparsexml.extract('/').getstringval());
end;
The issue is with rs:data , z:row nodes.... please suggest how to handle these kind of namespaces in Oracle
I need the parse the attribute "ows_Title" and save it into a DB
this script would generate "Error occured in XML Parsing"
Help is appriciated, thanks for lookingSQL> SELECT *
FROM XMLTABLE (
xmlnamespaces ('http://schemas.microsoft.com/sharepoint/soap/' as "soap",
'#RowsetSchema' AS "z"
'for $i in //soap:*//z:row return $i'
PASSING xmltype (
'<GetListItemsResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<GetListItemsResult>
<listitems xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
<rs:data ItemCount="2">
<z:row ows_MetaInfo="1;#" ows__ModerationStatus="0" ows__Level="1" ows_Title="Test Title 1" ows_ID="1" ows_owshiddenversion="1" ows_UniqueId="1;#{9C45D54E-150E-4509-B59A-DB5A1B97E034}" ows_FSObjType="1;#0" ows_Created="2009-09-12 17:13:16" ows_FileRef="1;#Lists/Tasks/1_.000"/>
<z:row ows_MetaInfo="2;#" ows__ModerationStatus="0" ows__Level="1" ows_Title="Testing Tasks" ows_ID="2" ows_owshiddenversion="1" ows_UniqueId="2;#{8942E211-460B-422A-B1AD-1347F062114A}" ows_FSObjType="2;#0" ows_Created="2010-02-14 16:44:40" ows_FileRef="2;#Lists/Tasks/2_.000"/>
</rs:data>
</listitems>
</GetListItemsResult>
</GetListItemsResponse>')
columns ows_MetaInfo varchar2(20) path '@ows_MetaInfo',
ows_Title varchar2(20) path '@ows_Title',
ows__ModerationStatus varchar2(20) path '@ows__ModerationStatus'
OWS_METAINFO OWS_TITLE OWS__MODERATIONSTATUS
1;# Test Title 1 0
2;# Testing Tasks 0
2 rows selected. -
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. -
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 -
Need help for extract XML fron PDF
I am a newbee for javascript developer and i don know about Acrobat my requirement is Extract XML from PDF document there is any possiblities to do this from acrobat professional if is it possible please guide me to do this thank you
i have a separate DTD for my own XML i want to extract my PDF files to that
XML is it possible may i know how the acrobat export as xml feature works -
Need help in Parsing XML Document in Oracle
Hello Experts,
I urgently need your help. We have xml document on the Web but not on the File System. How can I parse the xml document on the web in Oracle.
Any link, blog or sample code would be appreciated.
Your help would be appreciated.
Kind Regards,
Bhavin
London, UKThis breaks down to two issues
1) Getting the XML into Oracle
2) Parsing the XML inside Oracle
For #1, the first two options that come to my mind are httpuirtype and utl_http. Both can be used to get information from a URL that understands HTTP requests.
For #2, you can treat the XML as a DOMDocument or XMLType to parse it. You also could parse it via a SQL statement using XQuery or XMLTable as well.
Many of those examples can be found on the {forum:id=34} forum or [Marco's blog|http://www.liberidu.com/blog/]. A few parsing examples that I've done can be seen at {message:id=3610259}, make sure to also follow the link I put in there to a previous example before that. -
Parsing XML with html tags for style
I'm using flash to pull in XML data, but I want to use html
tags to be able to style the text. When I add any html, it treats
it as a sub-node and ignores the data. Also, line breaks in the xml
are being converted to double spaced paragraphs? The relevant code
is basically this:
if (element.nodeName.toUpperCase() == "TEXT")
{//add text to text array
ar_text[s]=element.firstChild.nodeValue;
textbox1.text = ar_text[0];try to use htmlText instead text... like this:
textbox1.htmlText = ar_text[0]
adam -
Setting Third-Party Saxon parser for parsing xml files
Hi,
I wish to parse certain xhtml files using saxon parser because that serves our needs. In order to that in tomcat, I used to use the following code -
System.getProperties().setProperty("javax.xml.parsers.SAXParserFactory","com.icl.saxon.aelfred.SAXParserFactoryImpl");
System.getProperties().setProperty("javax.xml.transform.TransformerFactory","com.icl.saxon.TransformerFactoryImpl");
However this does not work in Weblogic 8.1 SP5. Which means, it actually ignores the settings and uses the default parser (which fails to parse the documents).
I noticed that in weblogic I need to include these in the weblogic-application.xml located under the application/META-INF folder. I update the file with the following -
<xml>
<parser-factory>
<saxparser-factory>com.icl.saxon.aelfred.SAXParserFactoryImpl</saxparser-factory>
<transformer-factory>com.icl.saxon.TransformerFactoryImpl</transformer-factory>
</parser-factory>
</xml>
Everything was fine and the documents were parsed but for every server start up, I got an error message -
<Apr 4, 2006 10:34:43 AM EDT> <Error> <HTTP> <BEA-101216> <Servlet: "action" failed to preload on startup in Web application: "HarvesterWeb".
javax.servlet.UnavailableException: Parsing error processing resource path
at com.bea.wlw.netui.pageflow.AutoRegisterActionServlet.initModuleConfig
(AutoRegisterActionServlet.java:416)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:470)
at com.bea.wlw.netui.pageflow.AutoRegisterActionServlet.init(AutoRegisterActionServlet.java:103)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
at com.bea.wlw.netui.pageflow.AutoRegisterActionServlet.init(AutoRegisterActionServlet.java:109)
at com.bea.wlw.netui.pageflow.PageFlowActionServlet.init(PageFlowActionServlet.java:107)
at weblogic.servlet.internal.ServletStubImpl$ServletInitAction.run(ServletStubImpl.java:1094)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:970)
at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:949)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:888)
at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:3430)
at weblogic.servlet.internal.WebAppServletContext.preloadServlets(WebAppServletContext.java:3375)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:3356)
at weblogic.servlet.internal.WebAppServletContext.setStarted(WebAppServletContext.java:6208)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:864)
at weblogic.j2ee.J2EEApplicationContainer.start(J2EEApplicationContainer.java:2134)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2175)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2122)
at weblogic.management.deploy.slave.SlaveDeployer$Application.setActivation(SlaveDeployer.java:3099)
at weblogic.management.deploy.slave.SlaveDeployer.setActivationStateForAllApplications(SlaveDeployer.java:1768)
at weblogic.management.deploy.slave.SlaveDeployer.resume(SlaveDeployer.java:351)
at weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.resume(DeploymentManagerServerLifeCycleImpl.java:229)
at weblogic.t3.srvr.SubsystemManager.resume(SubsystemManager.java:136)
at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:965)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:360)
at weblogic.Server.main(Server.java:32)
>
And the server needs to be restarted after every couple of hits(particularly failures).
Also, my other applications won't deploy throwing the same stack trace.
At the end of all this, I get this message - Not sure if they are related but
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester).
log4j:WARN Please initialize the log4j system properly.
Any ideas or anyone run into these kind of situations? Moderators, can you please help?Try the following.
1. Keep the 3rd party jars in your WLS classpath and not within your ear.
2. Create an XML Registry through admin console.
Services->XML.
3. Enter appropriate values for the following
Document Builder Factory:
SAX Parser Factory:
Transformer Factory:
4. Restart WLS.
Refer to this link. http://e-docs.bea.com/wls/docs81/ConsoleHelp/domain_xmlregistrytable.html
cheers,
Dips -
Urgent help for processing XML stream read from a JAR file
Hi, everyone,
Urgently need your help!
I am reading an XML config file from a jar file. It can print out the result well when I use the following code:
===============================================
InputStream is = getClass().getResourceAsStream("conf/config.xml");
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line); // It works fine here, which means that the inputstream is correct
// process the XML stream I read from above
NodeIterator ni = processXPath("//grid/gridinfo", is);
Below is the processXPath() function I have written:
public static NodeIterator processXPath(String xpath, InputStream byteStream) throws Exception {
// Set up a DOM tree to query.
InputSource in = new InputSource(byteStream);
DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
dfactory.setNamespaceAware(true);
Document doc = dfactory.newDocumentBuilder().parse(in);
// Use the simple XPath API to select a nodeIterator.
System.out.println("Querying DOM using " + xpath);
NodeIterator ni = XPathAPI.selectNodeIterator(doc, xpath);
return ni;
It gives me so much errors:
org.xml.sax.SAXParseException: The root element is required in a well-formed doc
ument.
at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1213
at org.apache.xerces.framework.XMLDocumentScanner.reportFatalXMLError(XM
LDocumentScanner.java:570)
at org.apache.xerces.framework.XMLDocumentScanner$XMLDeclDispatcher.endO
fInput(XMLDocumentScanner.java:790)
at org.apache.xerces.framework.XMLDocumentScanner.endOfInput(XMLDocument
Scanner.java:418)
at org.apache.xerces.validators.common.XMLValidator.sendEndOfInputNotifi
cations(XMLValidator.java:712)
at org.apache.xerces.readers.DefaultEntityHandler.changeReaders(DefaultE
ntityHandler.java:1031)
at org.apache.xerces.readers.XMLEntityReader.changeReaders(XMLEntityRead
er.java:168)
at org.apache.xerces.readers.UTF8Reader.changeReaders(UTF8Reader.java:18
2)
at org.apache.xerces.readers.UTF8Reader.lookingAtChar(UTF8Reader.java:19
7)
at org.apache.xerces.framework.XMLDocumentScanner$XMLDeclDispatcher.disp
atch(XMLDocumentScanner.java:686)
at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentS
canner.java:381)
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.
java:195)
at processXPath(Unknown Source)
Thank you very much!
Sincerely Yours
Davidorg.xml.sax.SAXParseException: The root element is required in a well-formed document.This often means that the parser can't find the document. You think it should be able to find the document because your test code could. However if your test code was not in the same package as your real (failing) code, your test is no good because getResourceAsStream("conf/config.xml") is looking for that file name relative to the package of the class that contains that line of code.
If your test code wasn't in any package, put a slash before the filename and see if that works. -
Tips for parsing xml in a shell script?
Hello,
I'm writing a shell script to extract info from an xml file to create various text files that share data in the form of custom entities declared at the top of the document (product id, name, version, copyright date, etc.). So far I'm using xmllint which is working well. I'm extracting text for my project files using xmllint --shell:
<pre style="padding-left: .75ex; padding-top: .25em; padding-bottom: .25em; margin-top: .5em; margin-bottom: .5em; margin-left: 1ex; max-width: 80ex; overflow: auto; font-size: 10px; font-family: Monaco, 'Courier New', Courier, monospace; color: #222; background: #eee; line-height: normal">echo cat lls_cd_product/plist | xmllint --noent --shell xyz.xml | sed -e '1d; $d'</pre>
This is working well, but --shell mode adds an extra line to the beginning and end which I let sed cleanup, but then I need to strip the enclosing tags as well.
Xmllint does a good job of filling in my entities with the exception of MacRoman bullet characters that I've entered as ¥. These are just converted to the same entity in hex, ¥. I suppose I can replace those with sed, but that's starting to feel kludgey.
I'm beginning to wonder if there may be a better way to do this. I'm not very familiar with XSL, but I am considering ramping up on that.
Any suggestions would be welcome.
Coleetresoft wrote:
It may be a few hours before I get time to work on it.
Or not.
Here is your XML file:
<?xml version="1.0" encoding="UTF-8"?>
<info>
<ver>2.1.1</ver>
<tag>abc</tag>
<name>Product Name</name>
<filename>productname</filename>
<copyright>2008</copyright>
</info>
This generates the cd product file:
<?xml version="1.0"?>
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output method="xml" indent="yes" version="1.0" encoding="UTF-8"
doctype-system="http://www.apple.com/DTDs/PropertyList-1.0.dtd"
doctype-public="-//Apple Computer//DTD PLIST 1.0//EN"/>
<!-- You could access addition data from some other XML file. -->
<!-- <xsl:variable name="data" select="document('data.xml')/data"/> -->
<xsl:template match="info">
<plist version="1.0">
<dict>
<key>hfs-openfolder</key>
<string>.</string>
<key>hfs-volume-name</key>
<string><xsl:value-of select="name"/></string>
<key>hide-hfs</key>
<string>./{Norton,*.txt,*.exe,.inf}</string>
<key>hide-iso</key>
<string>./{PDS,*Rename,readme,.Volume*,Norton*,*icns,Run*.app,Icon*,Desktop*,TheFolder}</string>
<key>hide-joliet</key>
<string>./{PDS,*Rename,readme,.Volume*,Norton*,*icns,Run*.app,Icon*,Desktop*,TheFolder}</string>
<key>iso-volume-name</key>
<string><xsl:value-of select="tag"/></string>
<key>joliet-volume-name</key>
<string><xsl:value-of select="name"/></string>
</dict>
</plist>
</xsl:template>
</xsl:stylesheet>
and this generates the Mac read me file in XML:
<?xml version="1.0"?>
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output method="xml" indent="yes" version="1.0" encoding="UTF-8"/>
<!-- You could access addition data from some other XML file. -->
<!-- <xsl:variable name="data" select="document('data.xml')/data"/> -->
<xsl:template match="info">
<!-- You don't have to deal with these entities anymore. You should be
able to save this xsl file in UTF-8 format and just type in the
bullets. But the entities work too. -->
<readme_mac><xsl:value-of select="concat(name, ' ', ver)"/>
Copyright <xsl:value-of select="copyright"/>, Laureate Learning Systems¨, Inc.
Minimum System Requirements:
¥ 300 MHz or faster PowerPC, Intel or better CPU
¥ Mac OS 8.1 or later, including any Mac OS X
¥ 64 MB available RAM
¥ 60 MB available disk space
</readme_mac>
</xsl:template>
</xsl:stylesheet>
This one will output the readme in HTML:
<?xml version="1.0"?>
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output method="html" indent="yes" version="4.0" encoding="UTF-8"/>
<!-- You could access addition data from some other XML file. -->
<!-- <xsl:variable name="data" select="document('data.xml')/data"/> -->
<xsl:template match="info">
<!-- You don't have to deal with these entities anymore. You should be
able to save this xsl file in UTF-8 format and just type in the
bullets. But the entities work too. -->
<html>
<head>
<title><xsl:value-of select="concat(name, ' ', ver)"/></title>
</head>
<body>
<xsl:value-of select="concat(name, ' ', ver)"/>
Copyright <xsl:value-of select="copyright"/>, Laureate Learning Systems¨, Inc.
Minimum System Requirements:
300 MHz or faster PowerPC, Intel or better CPU
Mac OS 8.1 or later, including any Mac OS X
64 MB available RAM
60 MB available disk space
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Yes. I do enjoy XSL quite a bit -
Writing own getLineNumber for parsing XML Schema
I'm creating a XML Schema tool that checks that the user is creating valid Schema text.
What I want to do is if the user has nested an element within a parent that it's not meant to. for example:
<element name = "1">
<element name = "2"/>
</element>I want to return to the user the line number that the problem has occured.
Because as far as the SAXParser is concerned this is valid XML I can't catch a SAXParseException.
I'm using DOM to store the XML structure.
Is there another way I can parse the document so that I can store the line number it orginially came from?
Many thanks
AlexThats great, thanks.
My problem now is how can I access the parent node using SAX().
I have an arraylist for the parent of valid children, I need to check that the child node is infact one of these nodes.
The problem being using SAX() I can access the previous node but if their are sibling nodes this will not identify the parent.
This is the code I have so far:
public class TestHandler extends DefaultHandler
int lineNo = 1;
public void startElement(String namespaceURI, String localname, String rawname, Attributes atts) throws SAXException
SAX sax = new SAX();
ArrayList nodes = sax.getSchemaNodes();
for(int i = 0; i < nodes.size(); i++)
SchemaNode sn = (SchemaNode)nodes.get(i);
if(sn.getName().equals(localname))
System.out.println(sn.getName() + " = " + lineNo);
public void endElement(String namespaceURI,String localname,String rawname) throws SAXException
public void characters(char [] buf,int offset,int len)
lineNo++;
}Cheers Alex
Maybe you are looking for
-
PO against valuated sales order stock posting to consumption account
Hi All, I am creating a PO with account assignment against valuated sales order stock. However the posting happens to consumption account (GBB) instead of the stock account (BSX). The following settings exist 1. The material type is both quantity and
-
Installing Oracle Client in 9.2.0.8
I was trying to install oracle client and in OSS 1017418, it states: "Confirm that /oracle/client/92x_64/lib is a link to /oracle/<DBSID>/920_64/lib" Can anyone advise me how to do this in AIX 5.3? I know the command is "ln". Should it be a soft link
-
Send a mail from Netweaver 7.0
hi. I would like to know if the Sap Netweaver 7.0 have the posibility to send mails, because I want to send a mail with a smartform attachment, but always have an error It couldn't be sent or the user doesn't excist regards, Federico
-
Open a time capsule document in windows xp netbook
okay...in a bind..iMac had a power issue today and is getting fixed this week. My son has a document that is due this week in middle school. The mac was backed up in time capsule last night. How can I get access to it on my windows xp netbook so he c
-
How to display a DIV or not, based on whether a logging session cookie exists or not?
Hi everyone I have created a logging system for a simple CMS using Dreamweaver server behaviours. My problem : When logged in, I would like to show on my pages a DIV saying something like "You are logged in". If not logged in, I would like a differen