How can i rewrite the example bookClient.htm
Hi iam from brazil, anda my english is not good...
try understand:
How can i rewrite the example bookClient.htm of book PROFESSIONAL XML (year 2000), using a more recent programming?
The example create a xml document and show this in a html document with xsl.
to manipulate the xml, the example use JavaScript.
I read in the internet that example is delayed
HERE THE EXAMPLE:
<html>
<head>
<title>Wrox Press book data entry page</title>
<body onload="initializeBook()" >
<h1>Wrox Press book data entry page</h1>
<h3>Book information:</h3>
<table>
<tr>
<td>Title:</td>
<td><input id="txtTitle"></td>
</tr>
<tr>
<td>Publisher:</td><td><input id="txtPublisher"></td>
</tr>
<tr>
<td>Published Date:</td><td><input id="txtPubDate"></td>
</tr>
<tr>
<td>Abstract:</td><td><input id="txtAbstract"></td>
</tr>
<tr>
<td>Pages:</td><td><input id="txtPages"></td>
</tr>
<tr>
<td>ISBN:</td><td><input id="txtISBN"></td>
</tr>
<tr>
<td>Price:</td><td><input id="txtPrice"></td>
</tr>
</table>
<input id="btnUpdate" type="button" value="Update book info" onclick="updateBookInfo()">
<h3>Authors:</h3>
<table>
<tr>
<td>Author:</td><td><input id="txtAuthor"></td>
</tr>
</table>
<input id="btnAddAuthor" type="button" value="Add author" onclick="addAuthor()">
<h3>Categories:</h3>
<table>
<tr>
<td>Category:</td><td><input id="txtCategory"></td>
</tr>
</table>
<input id="btnAddCategory" type="button" value="Add Category" onclick="addCategory()">
<xml id="docBook">
<book>
</book>
</xml>
<script>
var docBook;
function initializeBook()
{
docBook = document.all("docBook").XMLDocument;
docBook.async = "false";
renderElements();
}
function createOrReplaceElement(sElementName, sElementValue, elementParent)
{
var elementItem;
var textValue;
var nodelistOldItem;
elementItem = docBook.createElement(sElementName);
textValue = docBook.createTextNode(sElementValue);
elementItem.appendChild(textValue);
nodelistOldItem = elementParent.getElementsByTagName(sElementName);
if (nodelistOldItem.length > 0)
{
elementParent.replaceChild(elementItem, nodelistOldItem.item(0));
}
else
{
elementParent.appendChild(elementItem);
}
}
function updateBookInfo()
{
createOrReplaceElement("Title", txtTitle.value, docBook.documentElement);
createOrReplaceElement("Publisher", txtPublisher.value, docBook.documentElement);
createOrReplaceElement("PubDate", txtPubDate.value, docBook.documentElement);
createOrReplaceElement("Abstract", txtAbstract.value, docBook.documentElement);
createOrReplaceElement("Pages", txtPages.value, docBook.documentElement);
createOrReplaceElement("ISBN", txtISBN.value, docBook.documentElement);
createOrReplaceElement("Price", txtPrice.value, docBook.documentElement);
renderElements();
}
function addAuthor()
{
var elementAuthor;
var textAuthor;
var nodelistAuthors;
var elementAuthors;
elementAuthor = docBook.createElement("Author");
textAuthor = docBook.createElement(txtAuthor.value);
elementAuthor.appendChild(textAuthor);
nodelistAuthors = docBook.getElementsByTagName("Authors");
if (nodelistAuthors.length == 0)
{
elementAuthors = docBook.createElement("Authors");
docBook.documentElement.appendChild(elementAuthors );
}
else
{
elementAuthors = nodelistAuthors.item(0);
}
elementAuthors.appendChild(elementAuthor);
renderElements();
}
function addCategory()
{
var elementCategory;
var textCategory;
var nodelistRecSubjCategories;
var elementRecSubjCategories;
elementCategory = docBook.createElement("category");
textCategory = docBook.createElement(txtCategory.value);
elementCategory.appendChild(textCategory);
nodelistRecSubjCategories = docBook.getElementsByTagName("RecSubjCategories");
if (nodelistRecSubjCategories.length == 0)
{
elementRecSubjCategories = docBook.createElement("RecSubjCategories");
docBook.documentElement.appendChild(elementRecSubj Categories);
}
else
{
elementRecSubjCategories = nodelistRecSubjCategories.item(0);
}
elementRecSubjCategories.appendChild(elementCatego ry);
renderElements();
}
function renderElements()
{
document.all("divRawXML").innerText = docBook.xml;
bookInfo.innerHTML = docBook.transformNode(bookXSL.documentElement);
authorTable.innerHTML = docBook.transformNode(authorXSL.documentElement);
categoryTable.innerHTML = docBook.transformNode(categoryXSL.documentElement) ;
}
</script>
<xml id="bookXSL">
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" indent="yes"/>
<xsl:template match="/">
<xsl:choose>
<xsl:when test="/book/Title[. != '']">
<table border="0" cellpadding="1">
<tr>
<td>Title:</td>
<td><xsl:value-of select="/book/Title"/></td>
</tr>
<tr>
<td>Publisher:</td>
<td><xsl:value-of select="/book/Publisher"/></td>
</tr>
<tr>
<td>Published Date:</td>
<td><xsl:value-of select="/book/PubDate"/></td>
</tr>
<tr>
<td>Abstract:</td>
<td><xsl:value-of select="/book/Abstract"/></td>
</tr>
<tr>
<td>Pages:</td>
<td><xsl:value-of select="/book/Pages"/></td>
</tr>
<tr>
<td>ISBN:</td>
<td><xsl:value-of select="/book/ISBN"/></td>
</tr>
<tr>
<td>Price:</td>
<td><xsl:value-of select="/book/Price"/></td>
</tr>
</table>
</xsl:when>
<xsl:otherwise>
<p>Book Information not yet specified.</p>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
</xml>
<xml id="authorXSL">
<div xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<table border="0" cellpadding="1">
<tr>
<td><strong>Authors</strong></td>
</tr>
<tr>
<td>You entered:</td>
</tr>
<xsl:for-each select="/Book/Authors/Author">
<tr>
<td><xsl:value-of select="text()"/></td>
</tr>
</xsl:for-each>
</table>
</div>
</xml>
<xml id="categoryXSL">
<div xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<table border="0" cellpadding="1">
<tr>
<td><strong>Categories</strong></td>
</tr>
<tr>
<td>You entered:</td>
</tr>
<xsl:for-each select="/book/recSubjCategories/category">
<tr>
<td><xsl:value-of select="text()"/></td>
</tr>
</xsl:for-each>
</table>
</div>
</xml>
<h2>Book information</h2>
<p><div id="bookInfo"></div></p>
<p><div id="authorTable"></div></p>
<p><div id="categoryTable"></div></p>
The text expression of the current contents of the DOM tree is:
<pre><div id="divRawXML"></div></pre>
</body>
</head>
</html>
Keyne
|