Xml Dom

  • Uploaded by: ankur
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Xml Dom as PDF for free.

More details

  • Words: 2,571
  • Pages: 17
XML DOM Introduction

The XML DOM defines a standard for accessing and manipulating XML.

What You Should Already Know Before you continue you should have a basic understanding of the following: •

HTML



XML



JavaScript

If you want to study these subjects first, find the tutorials on our Home page.

What is the DOM? The DOM is a W3C (World Wide Web Consortium) standard. The DOM defines a standard for accessing documents like XML and HTML: "The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure, and style of a document." The DOM is separated into 3 different parts / levels: •

Core DOM - standard model for any structured document



XML DOM - standard model for XML documents



HTML DOM - standard model for HTML documents

The DOM defines the objects and properties of all document elements, and the methods (interface) to access them.

What is the HTML DOM? The HTML DOM defines the objects and properties of all HTML elements, and the methods (interface) to access them. If you want to study the HTML DOM, find the HTML DOM tutorial on our Home page.

What is the XML DOM? The XML DOM is: •

A standard object model for XML



A standard programming interface for XML



Platform- and language-independent



A W3C standard

The XML DOM defines the objects and properties of all XML elements, and the methods (interface) to access them. In other words: The XML DOM is a standard for how to get, change, add, or delete XML elements.

XML DOM Nodes

In the DOM, everything in an XML document is a node.

DOM Nodes According to the DOM, everything in an XML document is a node. The DOM says: •

The entire document is a document node



Every XML element is an element node



The text in the XML elements are text nodes



Every attribute is an attribute node



Comments are comment nodes

DOM Example Look at the following XML file (books.xml):

Everyday Italian Giada De Laurentiis 2005 <price>30.00 Harry Potter J K. Rowling 2005 <price>29.99 XQuery Kick Start James McGovern Per Bothner Kurt Cagle James Linn Vaidyanathan Nagarajan 2003 <price>49.99 Learning XML Erik T. Ray 2003 <price>39.95

The root node in the XML above is named . All other nodes in the document are contained within . The root node holds four nodes. The first node holds four nodes: , <author rel="nofollow">, <year>, and <price>, which contains one text node each, "Everyday Italian", "Giada De Laurentiis", "2005", and "30.00".<br /> <br /> Text is Always Stored in Text Nodes A common error in DOM processing is to expect an element node to contain text. However, the text of an element node is stored in a text node. In this example: <year>2005</year>, the element node <year>, holds a text node with the value "2005". "2005" is not the value of the <year> element!<br /> <br /> XML DOM Node Tree<br /> <br /> The XML DOM views an XML document as a node-tree. All the nodes in the tree have a relationship to each other.<br /> <br /> The XML DOM Node Tree The XML DOM views an XML document as a tree-structure. The tree structure is called a node-tree. All nodes can be accessed through the tree. Their contents can be modified or deleted, and new elements can be created. The node tree shows the set of nodes, and the connections between them. The tree starts at the root node and branches out to the text nodes at the lowest level of the tree:<br /> <br /> The image above represents the XML file books.xml.<br /> <br /> Node Parents, Children, and Siblings The nodes in the node tree have a hierarchical relationship to each other. The terms parent, child, and sibling are used to describe the relationships. Parent nodes have children. Children on the same level are called siblings (brothers or sisters). •<br /> <br /> In a node tree, the top node is called the root<br /> <br /> •<br /> <br /> Every node, except the root, has exactly one parent node<br /> <br /> •<br /> <br /> A node can have any number of children<br /> <br /> •<br /> <br /> A leaf is a node with no children<br /> <br /> •<br /> <br /> Siblings are nodes with the same parent<br /> <br /> The following image illustrates a part of the node tree and the relationship between the nodes:<br /> <br /> Because the XML data is structured in a tree form, it can be traversed without knowing the exact structure of the tree and without knowing the type of data contained within. You will learn more about traversing the node tree in a later chapter of this tutorial.<br /> <br /> First Child - Last Child Look at the following XML fragment:<br /> <br /> <bookstore> <book category="cooking"> <title lang="en">Everyday Italian Giada De Laurentiis 2005 <price>30.00

In the XML above, the element is the first child of the <book> element, and the <price> element is the last child of the <book> element. Furthermore, the <book> element is the parent node of the <title>, <author rel="nofollow">, <year>, and <price> elements.<br /> <br /> XML DOM Parsing<br /> <br /> Most browsers have a build-in XML parser to read and manipulate XML. The parser converts XML into a JavaScript accessible object.<br /> <br /> Parsing XML The XML DOM contains methods (functions) to traverse XML trees, access, insert, and delete nodes. However, before an XML document can be accessed and manipulated, it must be loaded into an XML DOM object. The parser reads XML into memory and converts it into an XML DOM object that can be accessed with JavaScript.<br /> <br /> Load an XML Document The following JavaScript fragment loads an XML document ("books.xml"):<br /> <br /> var xmlDoc; xmlDoc=new window.XMLHttpRequest(); xmlDoc.open("GET","books.xml",false); xmlDoc.send(""); Code explained: •<br /> <br /> Create an XMLHTTP object<br /> <br /> •<br /> <br /> Open the XMLHTTP object<br /> <br /> •<br /> <br /> Send an XML HTTP request to the server<br /> <br /> Load an XML String The following code loads and parses an XML string:<br /> <br /> try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(txt); return xmlDoc; } catch(e)<br /> <br /> { parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml"); return xmlDoc; } Note: Internet Explorer uses the loadXML() method to parse an XML string, while other browsers use the DOMParser object.<br /> <br /> Access Across Domains For security reasons, modern browsers do not allow access across domains. This means, that both the web page and the XML file it tries to load, must be located on the same server. The examples on W3Schools all open XML files located on the W3Schools domain. If you want to use the example above on one of your web pages, the XML files you load must be located on your own server.<br /> <br /> XML DOM Load Functions<br /> <br /> The code for loading XML documents can be stored in a function.<br /> <br /> The loadXMLDoc() Function To make the code from the previous page simpler to maintain (and check for older browsers), it should be written as a function:<br /> <br /> function loadXMLDoc(dname) { var xmlDoc; if (window.XMLHttpRequest) { xmlDoc=new window.XMLHttpRequest(); xmlDoc.open("GET",dname,false); xmlDoc.send(""); return xmlDoc.responseXML; } // IE 5 and IE 6 else if (ActiveXObject("Microsoft.XMLDOM")) { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.load(dname); return xmlDoc; } alert("Error loading document"); return null; } The function above can be stored in the <head> section of an HTML page, and called from a script in the page. The function described above, is used in all XML document examples in this tutorial!<br /> <br /> An External JavaScript for loadXMLDoc() To make the code above even easier to maintain, and to make sure the same code is used in all pages, we store the function in an external file. The file is called "loadxmldoc.js", and will be loaded in the head section of an HTML page. Then, the loadXMLDoc() function can be called from a script in the page. The following example uses the loadXMLDoc() function to load books.xml:<br /> <br /> Example <html> <head> <script type="text/javascript" src="loadxmldoc.js"> </script> </head> <body> <script type="text/javascript"> xmlDoc=loadXMLDoc("books.xml"); code goes here..... </script> </body> </html><br /> <br /> How to get the data from the XML file, will be explained in the next chapters.<br /> <br /> The loadXMLString() Function To make the code from the previous page simpler to maintain (and check for older browsers), it should be written as a function:<br /> <br /> function loadXMLString(txt) { try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(txt); return xmlDoc; } catch(e) { try //Firefox, Mozilla, Opera, etc. { parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml"); return xmlDoc; } catch(e) {alert(e.message)}<br /> <br /> } return null; } The function above can be stored in the <head> section of an HTML page, and called from a script in the page. The function described above, is used in all XML string examples in this tutorial!<br /> <br /> An External JavaScript for loadXMLString() We have stored the loadXMLString() function in a file called "loadxmlstring.js".<br /> <br /> Example <html> <head> <script type="text/javascript" src="loadxmlstring.js"></script> </head> <body> <script type="text/javascript"> text="<bookstore>" text=text+"<book>"; text=text+"<title>Everyday Italian"; text=text+"Giada De Laurentiis"; text=text+"2005"; text=text+""; text=text+"
"; xmlDoc=loadXMLString(text); code goes here.....

<script type="text/javascript" src="loadxmlstring.js"> <script type="text/javascript"> text="" text=text+""; text=text+"Everyday Italian"; text=text+"Giada De Laurentiis"; text=text+"2005"; text=text+""; text=text+"";

xmlDoc=loadXMLString(text); code goes here.....

<script type="text/javascript" src="loadxmlstring.js"> <script type="text/javascript"> text="" text=text+""; text=text+"Everyday Italian"; text=text+"Giada De Laurentiis"; text=text+"2005"; text=text+""; text=text+"";

xmlDoc=loadXMLString(text);

document.write(xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue ); document.write("
"); document.write(xmlDoc.getElementsByTagName("author")[0].childNodes[0].nodeVa lue); document.write("
"); document.write(xmlDoc.getElementsByTagName("year")[0].childNodes[0].nodeValu e);



XML DOM - Properties and Methods

Properties and methods define the programming interface to the XML DOM.

Programming Interface The DOM models XML as a set of node objects. The nodes can be accessed with JavaScript or other programming languages. In this tutorial we use JavaScript. The programming interface to the DOM is defined by a set standard properties and methods. Properties are often referred to as something that is (i.e. nodename is "book"). Methods are often referred to as something that is done (i.e. delete "book").

XML DOM Properties These are some typical DOM properties:



x.nodeName - the name of x



x.nodeValue - the value of x



x.parentNode - the parent node of x



x.childNodes - the child nodes of x



x.attributes - the attributes nodes of x

Note: In the list above, x is a node object.

XML DOM Methods •

x.getElementsByTagName(name) - get all elements with a specified tag name



x.appendChild(node) - insert a child node to x



x.removeChild(node) - remove a child node from x

Note: In the list above, x is a node object.

Example The JavaScript code to get the text from the first element in books.xml: txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue<br /> <br /> After the execution of the statement, txt will hold the value "Everyday Italian" Explained:<br /> <br /> •<br /> <br /> xmlDoc - the XML DOM object created by the parser.<br /> <br /> •<br /> <br /> getElementsByTagName("title")[0] - the first <title> element<br /> <br /> •<br /> <br /> childNodes[0] - the first child of the <title> element (the text node)<br /> <br /> •<br /> <br /> nodeValue - the value of the node (the text itself)<br /> <br /> XML DOM - Accessing Nodes<br /> <br /> With the DOM, you can access every node in an XML document.<br /> <br /> Try it Yourself - Examples The examples below use the XML file books.xml. A function, loadXMLDoc(), in an external JavaScript is used to load the XML file. Access a node using its index number in a node list This example uses the getElementsByTagname() method to get the third <title> element in "books.xml" Loop through nodes using the length property This example uses the length property to loop through all <title> elements in "books.xml" See the node type of an element This example uses the nodeType property to get node type of the root element in "books.xml". Loop through element nodes This example uses the nodeType property to only process element nodes in "books.xml". Loop through element nodes using node realtionships This example uses the nodeType property and the nextSibling property to process element nodes in "books.xml".<br /> <br /> Accessing Nodes You can access a node in three ways: 1. By using the getElementsByTagName() method 2. By looping through (traversing) the nodes tree. 3. By navigating the node tree, using the node relationships.<br /> <br /> The getElementsByTagName() Method getElementsByTagName() returns all elements with a specified tag name.<br /> <br /> Syntax node.getElementsByTagName("tagname");<br /> <br /> Example The following example returns all <title> elements under the x element:<br /> <br /> x.getElementsByTagName("title"); Note that the example above only returns <title> elements under the x node. To return all <title> elements in the XML document use:<br /> <br /> xmlDoc.getElementsByTagName("title"); where xmlDoc is the document itself (document node).<br /> <br /> DOM Node List The getElementsByTagName() method returns a node list. A node list is an array of nodes. The following code loads "books.xml" into xmlDoc using loadXMLDoc() and stores a list of <title> nodes (a node list) in the variable x:<br /> <br /> xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title"); The <title> elements in x can be accessed by index number. To access the third <title> you can write::<br /> <br /> y=x[2]; Note: The index starts at 0. You will learn more about node lists in a later chapter of this tutorial.<br /> <br /> DOM Node List Length The length property defines the length of a node list (the number of nodes). You can loop through a node list by using the length property:<br /> <br /> Example xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title"); for (i=0;i<x.length;i++) { document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); }<br /> <br /> Example explained:<br /> <br /> 1.<br /> <br /> Load "books.xml" into xmlDoc using loadXMLDoc()<br /> <br /> 2.<br /> <br /> Get all <title> element nodes<br /> <br /> 3.<br /> <br /> For each title element, output the value of its text node<br /> <br /> Node Types The documentElement property of the XML document is the root node. The nodeName property of a node is the name of the node. The nodeType property of a node is the type of the node. You will learn more about the node properties in the next chapter of this tutorial. Try it yourself<br /> <br /> Traversing Nodes The following code loops through the child nodes, that are also element nodes, of the root node:<br /> <br /> Example xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {//Process only element nodes (type 1) document.write(x[i].nodeName); document.write("<br />"); } }<br /> <br /> Example explained:<br /> <br /> 1.<br /> <br /> Load "books.xml" into xmlDoc using loadXMLDoc()<br /> <br /> 2.<br /> <br /> Get the child nodes of the root element<br /> <br /> 3.<br /> <br /> For each child node, check the node type of the node. If the node type is "1" it is an element node<br /> <br /> 4.<br /> <br /> Output the name of the node if it is an element node<br /> <br /> Navigating Node Relationships The following code navigates the node tree using the node relationships:<br /> <br /> Example xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0].childNodes; y=xmlDoc.getElementsByTagName("book")[0].firstChild;<br /> <br /> for (i=0;i<x.length;i++) { if (y.nodeType==1) {//Process only element nodes (type 1) document.write(y.nodeName + "<br />"); } y=y.nextSibling; }<br /> <br /> 1.<br /> <br /> Load "books.xml" into xmlDoc using loadXMLDoc()<br /> <br /> 2.<br /> <br /> Get the child nodes of the first book element<br /> <br /> 3.<br /> <br /> Set the "y" variable to be the first child node of the first book element<br /> <br /> 4.<br /> <br /> For each child node (starting with the first child node "y"):<br /> <br /> 5.<br /> <br /> Check the node type. If the node type is "1" it is an element node<br /> <br /> 6.<br /> <br /> Output the name of the node if it is an element node<br /> <br /> 7.<br /> <br /> Set the "y" variable to be the next sibling node, and run through the loop again<br /> <br /> <html> <head> <script type="text/javascript" src="loadxmldoc.js"></script> </head> <body><br /> <br /> <script type="text/javascript"><br /> <br /> xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title"); document.write(x[2].childNodes[0].nodeValue);<br /> <br /> </script> </body> </html> <html><br /> <br /> <head> <script type="text/javascript" src="loadxmldoc.js"></script> </head> <body><br /> <br /> <script type="text/javascript"> xmlDoc=loadXMLDoc("books.xml");<br /> <br /> x=xmlDoc.getElementsByTagName("title"); for (i=0;i<x.length;i++) { document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); } </script> </body> </html><br /> <br /> <html> <head> <script type="text/javascript" src="loadxmldoc.js"></script> </head> <body><br /> <br /> <script type="text/javascript"> xmlDoc=loadXMLDoc("books.xml");<br /> <br /> document.write(xmlDoc.documentElement.nodeName);<br /> <br /> document.write("<br />"); document.write(xmlDoc.documentElement.nodeType); </script> </body> </html> <html> <head> <script type="text/javascript" src="loadxmldoc.js"></script> </head> <body><br /> <br /> <script type="text/javascript"> xmlDoc=loadXMLDoc("books.xml");<br /> <br /> x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {//Process only element nodes (type 1) document.write(x[i].nodeName); document.write("<br />"); } } </script> </body> </html> <html> <head><br /> <br /> <script type="text/javascript" src="loadxmldoc.js"></script> </head> <body><br /> <br /> <script type="text/javascript"> xmlDoc=loadXMLDoc("books.xml");<br /> <br /> x=xmlDoc.getElementsByTagName("book")[0].childNodes; y=xmlDoc.getElementsByTagName("book")[0].firstChild; for (i=0;i<x.length;i++) { if (y.nodeType==1) {//Process only element nodes (type 1) document.write(y.nodeName + "<br />"); } y=y.nextSibling; } </script> </body> </html> </div> </div> <hr /> <h4>Related Documents</h4> <div class="row"> <div class="col-lg-2 col-md-4 col-sm-6 col-6"> <div class="card item-doc mb-4"> <a href="https://pdfcoke.com/documents/xml-dom-r6zw1ewwnq30" class="d-block"><img class="card-img-top" src="https://pdfcoke.com/img/crop/300x300/r6zw1ewwnq30.jpg" alt=""/></a> <div class="card-body text-left"> <h5 class="card-title"><a href="https://pdfcoke.com/documents/xml-dom-r6zw1ewwnq30" class="text-dark">Xml Dom</a></h5> <small class="text-muted float-left"><i class="fas fa-clock"></i> May 2020</small> <small class="text-muted float-right"><i class="fas fa-eye"></i> 15</small> <div class="clearfix"></div> </div> </div> </div> <div class="col-lg-2 col-md-4 col-sm-6 col-6"> <div class="card item-doc mb-4"> <a href="https://pdfcoke.com/documents/xml-dom-q6zp9mdp143p" class="d-block"><img class="card-img-top" src="https://pdfcoke.com/img/crop/300x300/q6zp9mdp143p.jpg" alt=""/></a> <div class="card-body text-left"> <h5 class="card-title"><a href="https://pdfcoke.com/documents/xml-dom-q6zp9mdp143p" class="text-dark">Xml Dom</a></h5> <small class="text-muted float-left"><i class="fas fa-clock"></i> December 2019</small> <small class="text-muted float-right"><i class="fas fa-eye"></i> 16</small> <div class="clearfix"></div> </div> </div> </div> <div class="col-lg-2 col-md-4 col-sm-6 col-6"> <div class="card item-doc mb-4"> <a href="https://pdfcoke.com/documents/xml-dom-tutorial-gl3gjll6ek3p" class="d-block"><img class="card-img-top" src="https://pdfcoke.com/img/crop/300x300/gl3gjll6ek3p.jpg" alt=""/></a> <div class="card-body text-left"> <h5 class="card-title"><a href="https://pdfcoke.com/documents/xml-dom-tutorial-gl3gjll6ek3p" class="text-dark">Xml Dom Tutorial</a></h5> <small class="text-muted float-left"><i class="fas fa-clock"></i> July 2020</small> <small class="text-muted float-right"><i class="fas fa-eye"></i> 3</small> <div class="clearfix"></div> </div> </div> </div> <div class="col-lg-2 col-md-4 col-sm-6 col-6"> <div class="card item-doc mb-4"> <a href="https://pdfcoke.com/documents/xml-r6zw1llwdr30" class="d-block"><img class="card-img-top" src="https://pdfcoke.com/img/crop/300x300/r6zw1llwdr30.jpg" alt=""/></a> <div class="card-body text-left"> <h5 class="card-title"><a href="https://pdfcoke.com/documents/xml-r6zw1llwdr30" class="text-dark">Xml</a></h5> <small class="text-muted float-left"><i class="fas fa-clock"></i> June 2020</small> <small class="text-muted float-right"><i class="fas fa-eye"></i> 21</small> <div class="clearfix"></div> </div> </div> </div> <div class="col-lg-2 col-md-4 col-sm-6 col-6"> <div class="card item-doc mb-4"> <a href="https://pdfcoke.com/documents/xml-09o82xp7norx" class="d-block"><img class="card-img-top" src="https://pdfcoke.com/img/crop/300x300/09o82xp7norx.jpg" alt=""/></a> <div class="card-body text-left"> <h5 class="card-title"><a href="https://pdfcoke.com/documents/xml-09o82xp7norx" class="text-dark">Xml</a></h5> <small class="text-muted float-left"><i class="fas fa-clock"></i> November 2019</small> <small class="text-muted float-right"><i class="fas fa-eye"></i> 35</small> <div class="clearfix"></div> </div> </div> </div> <div class="col-lg-2 col-md-4 col-sm-6 col-6"> <div class="card item-doc mb-4"> <a href="https://pdfcoke.com/documents/xml-wj39eemmgrog" class="d-block"><img class="card-img-top" src="https://pdfcoke.com/img/crop/300x300/wj39eemmgrog.jpg" alt=""/></a> <div class="card-body text-left"> <h5 class="card-title"><a href="https://pdfcoke.com/documents/xml-wj39eemmgrog" class="text-dark">Xml</a></h5> <small class="text-muted float-left"><i class="fas fa-clock"></i> May 2020</small> <small class="text-muted float-right"><i class="fas fa-eye"></i> 25</small> <div class="clearfix"></div> </div> </div> </div> </div> <hr/> <h4>More Documents from "Nicolle Castro"</h4> <div class="row"> <div class="col-lg-2 col-md-4 col-sm-6 col-6"> <div class="card item-doc mb-4"> <a href="https://pdfcoke.com/documents/simran-project-1docx-5on66qgdvg3e" class="d-block"><img class="card-img-top" src="https://pdfcoke.com/img/crop/300x300/5on66qgdvg3e.jpg" alt=""/></a> <div class="card-body text-left"> <h5 class="card-title"><a href="https://pdfcoke.com/documents/simran-project-1docx-5on66qgdvg3e" class="text-dark">Simran Project-1.docx</a></h5> <small class="text-muted float-left"><i class="fas fa-clock"></i> December 2019</small> <small class="text-muted float-right"><i class="fas fa-eye"></i> 23</small> <div class="clearfix"></div> </div> </div> </div> <div class="col-lg-2 col-md-4 col-sm-6 col-6"> <div class="card item-doc mb-4"> <a href="https://pdfcoke.com/documents/service-marketing-case-study-euro-disney-q6zp98mp9m3p" class="d-block"><img class="card-img-top" src="https://pdfcoke.com/img/crop/300x300/q6zp98mp9m3p.jpg" alt=""/></a> <div class="card-body text-left"> <h5 class="card-title"><a href="https://pdfcoke.com/documents/service-marketing-case-study-euro-disney-q6zp98mp9m3p" class="text-dark">Service Marketing Case Study: Euro Disney</a></h5> <small class="text-muted float-left"><i class="fas fa-clock"></i> November 2019</small> <small class="text-muted float-right"><i class="fas fa-eye"></i> 13</small> <div class="clearfix"></div> </div> </div> </div> <div class="col-lg-2 col-md-4 col-sm-6 col-6"> <div class="card item-doc mb-4"> <a href="https://pdfcoke.com/documents/law-on-mediation-6zp1e8ejq8zp" class="d-block"><img class="card-img-top" src="https://pdfcoke.com/img/crop/300x300/6zp1e8ejq8zp.jpg" alt=""/></a> <div class="card-body text-left"> <h5 class="card-title"><a href="https://pdfcoke.com/documents/law-on-mediation-6zp1e8ejq8zp" class="text-dark">Law On Mediation</a></h5> <small class="text-muted float-left"><i class="fas fa-clock"></i> August 2019</small> <small class="text-muted float-right"><i class="fas fa-eye"></i> 29</small> <div class="clearfix"></div> </div> </div> </div> <div class="col-lg-2 col-md-4 col-sm-6 col-6"> <div class="card item-doc mb-4"> <a href="https://pdfcoke.com/documents/9001-case-studydocx-d3788jxp6kzx" class="d-block"><img class="card-img-top" src="https://pdfcoke.com/img/crop/300x300/d3788jxp6kzx.jpg" alt=""/></a> <div class="card-body text-left"> <h5 class="card-title"><a href="https://pdfcoke.com/documents/9001-case-studydocx-d3788jxp6kzx" class="text-dark">9001 Case Study.docx</a></h5> <small class="text-muted float-left"><i class="fas fa-clock"></i> November 2019</small> <small class="text-muted float-right"><i class="fas fa-eye"></i> 22</small> <div class="clearfix"></div> </div> </div> </div> <div class="col-lg-2 col-md-4 col-sm-6 col-6"> <div class="card item-doc mb-4"> <a href="https://pdfcoke.com/documents/what-do-they-do-when-youre-not-therepdf-l3gjjv6ne83p" class="d-block"><img class="card-img-top" src="https://pdfcoke.com/img/crop/300x300/l3gjjv6ne83p.jpg" alt=""/></a> <div class="card-body text-left"> <h5 class="card-title"><a href="https://pdfcoke.com/documents/what-do-they-do-when-youre-not-therepdf-l3gjjv6ne83p" class="text-dark">What-do-they-do-when-youre-not-there.pdf</a></h5> <small class="text-muted float-left"><i class="fas fa-clock"></i> November 2019</small> <small class="text-muted float-right"><i class="fas fa-eye"></i> 16</small> <div class="clearfix"></div> </div> </div> </div> <div class="col-lg-2 col-md-4 col-sm-6 col-6"> <div class="card item-doc mb-4"> <a href="https://pdfcoke.com/documents/level-up-training-for-supervisordocx-lo677kvxe836" class="d-block"><img class="card-img-top" src="https://pdfcoke.com/img/crop/300x300/lo677kvxe836.jpg" alt=""/></a> <div class="card-body text-left"> <h5 class="card-title"><a href="https://pdfcoke.com/documents/level-up-training-for-supervisordocx-lo677kvxe836" class="text-dark">Level Up Training For Supervisor.docx</a></h5> <small class="text-muted float-left"><i class="fas fa-clock"></i> November 2019</small> <small class="text-muted float-right"><i class="fas fa-eye"></i> 17</small> <div class="clearfix"></div> </div> </div> </div> </div> </div> </div> </div> </div> <footer class="footer pt-5 pb-0 pb-md-5 bg-primary text-white"> <div class="container"> <div class="row"> <div class="col-md-3 mb-3 mb-sm-0"> <h5 class="text-white font-weight-bold mb-4">Our Company</h5> <ul class="list-unstyled"> <li><i class="fas fa-location-arrow"></i> 3486 Boone Street, Corpus Christi, TX 78476</li> <li><i class="fas fa-phone"></i> +1361-285-4971</li> <li><i class="fas fa-envelope"></i> <a href="mailto:info@pdfcoke.com" class="text-white">info@pdfcoke.com</a></li> </ul> </div> <div class="col-md-3 mb-3 mb-sm-0"> <h5 class="text-white font-weight-bold mb-4">Quick Links</h5> <ul class="list-unstyled"> <li><a href="https://pdfcoke.com/about" class="text-white">About</a></li> <li><a href="https://pdfcoke.com/contact" class="text-white">Contact</a></li> <li><a href="https://pdfcoke.com/help" class="text-white">Help / FAQ</a></li> <li><a href="https://pdfcoke.com/account" class="text-white">Account</a></li> </ul> </div> <div class="col-md-3 mb-3 mb-sm-0"> <h5 class="text-white font-weight-bold mb-4">Legal</h5> <ul class="list-unstyled"> <li><a href="https://pdfcoke.com/tos" class="text-white">Terms of Service</a></li> <li><a href="https://pdfcoke.com/privacy-policy" class="text-white">Privacy Policy</a></li> <li><a href="https://pdfcoke.com/cookie-policy" class="text-white">Cookie Policy</a></li> <li><a href="https://pdfcoke.com/disclaimer" class="text-white">Disclaimer</a></li> </ul> </div> <div class="col-md-3 mb-3 mb-sm-0"> <h5 class="text-white font-weight-bold mb-4">Follow Us</h5> <ul class="list-unstyled list-inline list-social"> <li class="list-inline-item"><a href="#" class="text-white" target="_blank"><i class="fab fa-facebook-f"></i></a></li> <li class="list-inline-item"><a href="#" class="text-white" target="_blank"><i class="fab fa-twitter"></i></a></li> <li class="list-inline-item"><a href="#" class="text-white" target="_blank"><i class="fab fa-linkedin"></i></a></li> <li class="list-inline-item"><a href="#" class="text-white" target="_blank"><i class="fab fa-instagram"></i></a></li> </ul> <h5 class="text-white font-weight-bold mb-4">Mobile Apps</h5> <ul class="list-unstyled "> <li><a href="#" class="bb-alert" data-msg="IOS app is not available yet! Please try again later!"><img src="https://pdfcoke.com/static/images/app-store-badge.svg" height="45" /></a></li> <li><a href="#" class="bb-alert" data-msg="ANDROID app is not available yet! Please try again later!"><img style="margin-left: -10px;" src="https://pdfcoke.com/static/images/google-play-badge.png" height="60" /></a></li> </ul> </div> </div> </div> </footer> <div class="footer-copyright border-top pt-4 pb-2 bg-primary text-white"> <div class="container"> <p>Copyright © 2024 PDFCOKE.</p> </div> </div> <script src="https://pdfcoke.com/static/javascripts/jquery.min.js"></script> <script src="https://pdfcoke.com/static/javascripts/popper.min.js"></script> <script src="https://pdfcoke.com/static/javascripts/bootstrap.min.js"></script> <script src="https://pdfcoke.com/static/javascripts/bootbox.all.min.js"></script> <script src="https://pdfcoke.com/static/javascripts/filepond.js"></script> <script src="https://pdfcoke.com/static/javascripts/main.js?v=1728153703"></script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-144986120-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-144986120-1'); </script> </body> </html>