📄 xsl_editxml.asp
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-US" xml:lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>XSLT - Editing XML</title>
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="Keywords" content="xml,tutorial,html,dhtml,css,xsl,xhtml,javascript,asp,ado,vbscript,dom,sql,colors,soap,php,authoring,programming,training,learning,beginner's guide,primer,lessons,school,howto,reference,examples,samples,source code,tags,demos,tips,links,FAQ,tag list,forms,frames,color table,w3c,cascading style sheets,active server pages,dynamic html,internet,database,development,Web building,Webmaster,html guide" />
<meta name="Description" content="Free HTML XHTML CSS JavaScript DHTML XML DOM XSL XSLT RSS AJAX ASP ADO PHP SQL tutorials, references, examples for web building." />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<link rel="stylesheet" type="text/css" href="../stdtheme.css" />
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "../../https@ssl./default.htm" : "../../www./default.htm");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-3855518-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
</head>
<body>
<a name="top"></a>
<table cellpadding="0" cellspacing="0" width="100%" bgcolor="#808080">
<tr>
<td width="234" valign="top">
<a href="../default.htm"><img src="../images/w3default80.jpg" border="0" alt="W3Schools" /></a>
</td>
<th valign="middle" align="left" class="right">
<iframe style="background-color:#808080" src="../banners/bannerframe.asp@adpartner=aspall2" height="90" width="728"
marginwidth="0" marginheight="0" frameborder="0" scrolling="no">
Your browser does not support inline frames or is currently configured not to display inline frames.
</iframe>
<br /></th>
</tr>
</table>
<table style="margin-left:1px" width="800px" border="0" cellpadding="0" cellspacing="2">
<tr>
<td width="137" class="content" valign="top"><br />
<a class="left" href="../default.asp" target="_top">
<img src="../images/homeicon.gif" border="0" alt="home" /></a>
<a class="left" href="../default.asp" target="_top">
<b>HOME</b></a>
<br /><br />
<b>XSLT Basic</b><br />
<a class="left" target="_top" href="default.asp" >XSLT HOME</a><br />
<a class="left" target="_top" href="xsl_languages.asp" >XSL Languages</a><br />
<a class="left" target="_top" href="xsl_intro.asp" >XSLT Introduction</a><br />
<a class="left" target="_top" href="xsl_browsers.asp" >XSLT Browsers</a><br />
<a class="left" target="_top" href="xsl_transformation.asp" >XSLT Transform</a><br />
<a class="left" target="_top" href="xsl_templates.asp" >XSLT <template></a><br />
<a class="left" target="_top" href="xsl_value_of.asp" >XSLT <value-of></a><br />
<a class="left" target="_top" href="xsl_for_each.asp" >XSLT <for-each></a><br />
<a class="left" target="_top" href="xsl_sort.asp" >XSLT <sort></a><br />
<a class="left" target="_top" href="xsl_if.asp" >XSLT <if></a><br />
<a class="left" target="_top" href="xsl_choose.asp" >XSLT <choose></a><br />
<a class="left" target="_top" href="xsl_apply_templates.asp" >XSLT Apply</a><br />
<br />
<b>XSLT Advanced</b><br />
<a class="left" target="_top" href="xsl_client.asp" >XSLT on the Client</a><br />
<a class="left" target="_top" href="xsl_server.asp" >XSLT on the Server</a><br />
<a class="left" target="_top" href="xsl_editxml.asp" style='font-weight:bold;'>XSLT Edit XML</a><br />
<a class="left" target="_top" href="xsl_editors.asp" >XSLT Editors</a><br />
<a class="left" target="_top" href="xsl_summary.asp" >XSLT Summary</a><br />
<br />
<b>References</b><br />
<a class="left" target="_top" href="xsl_w3celementref.asp" >XSLT Elements</a><br />
<a class="left" target="_top" href="xsl_functions.asp" >XSLT Functions</a><br /><br />
<b>Selected Reading</b><br />
<a class="left" target="_top" href="../browsers/browsers_stats.asp">Web Statistics</a><br />
<a class="left" target="_top" href="../site/site_glossary.asp">Web Glossary</a><br />
<a class="left" target="_top" href="../hosting/default.asp">Web Hosting</a><br />
<a class="left" target="_top" href="../quality/default.asp">Web Quality</a><br /><br />
<a class="left" target="_top" href="../forum/default.asp">W3Schools Forum</a><br /><br />
<a class="left" target="_top" href="../about/about_helping.asp">Helping W3Schools</a><br /><br />
<script type="text/javascript"><!--
google_ad_client = "pub-3440800076797949";
/*LeftLinkUnit*/
google_ad_slot = "4854527104";
google_ad_width = 120;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="../../pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</td>
<td valign="top">
<table style="border: 1px solid gray" width="100%" bgcolor="#FFFFFF" border="0" cellpadding="5" cellspacing="0">
<tr>
<td>
<h1>XSLT - Editing XML</h1>
<a href="xsl_server.asp"><img border="0" src="../images/btn_previous.gif" alt="prev" width="100" height="20" /></a>
<a href="xsl_editors.asp"><img border="0" src="../images/btn_next.gif" alt="next" width="100" height="20" /></a>
<hr />
<p class="intro">Data stored in XML files can be edited from an Internet browser.</p>
<hr />
<h2>Open, Edit and Save XML</h2>
<p>Now, we will show how to open, edit, and save an XML file that is stored on
the server.</p>
<p>We will use XSL to
transform the XML document into an HTML form. The values of the XML
elements will be written to HTML input fields in an HTML form. The HTML form
is editable. After editing the data, the data is going to be submitted back to the server and
the XML file will be updated (this part is done with ASP). </p>
<hr />
<h2>The XML File and the XSL File</h2>
<p>First, look at the XML document that will be used ("tool.xml"):</p>
<table width="100%" border="1" class="ex" cellspacing="0">
<tr>
<td>
<pre><?xml version="1.0" encoding="ISO-8859-1"?>
<tool>
<field id="prodName">
<value>HAMMER HG2606</value>
</field>
<field id="prodNo">
<value>32456240</value>
</field>
<field id="price">
<value>$30.00</value>
</field>
</tool></pre>
</td>
</tr>
</table>
<p><a target="_blank" href="tool.xml">View the XML file</a>.</p>
<p>Then, take a look at the following style sheet ("tool.xsl"):</p>
<table width="100%" border="1" class="ex" cellspacing="0">
<tr>
<td>
<pre><?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"></pre>
<pre><xsl:template match="/">
<html>
<body>
<form method="post" action="edittool.asp">
<h2>Tool Information (edit):</h2>
<table border="0">
<xsl:for-each select="tool/field">
<tr>
<td>
<xsl:value-of select="@id"/>
</td>
<td>
<input type="text">
<xsl:attribute name="id">
<xsl:value-of select="@id" />
</xsl:attribute>
<xsl:attribute name="name">
<xsl:value-of select="@id" />
</xsl:attribute>
<xsl:attribute name="value">
<xsl:value-of select="value" />
</xsl:attribute>
</input>
</td>
</tr>
</xsl:for-each>
</table>
<br />
<input type="submit" id="btn_sub" name="btn_sub" value="Submit" />
<input type="reset" id="btn_res" name="btn_res" value="Reset" />
</form>
</body>
</html>
</xsl:template>
</xsl:stylesheet></pre>
</td>
</tr>
</table>
<p><a target="_blank" href="tool.xsl">View the XSL file</a>.</p>
<p>The XSL file above loops through the elements in
the XML file and creates one input field for each XML "field"
element. The value of the XML "field" element's "id" attribute is
added to
both the "id" and "name" attributes of each HTML input
field. The value of each XML "value" element is
added to the "value" attribute of each HTML input field. The result
is an editable HTML form that contains the values from the XML file.</p>
<p>Then, we have a second style sheet: "tool_updated.xsl". This is the XSL
file that will be used to display the updated XML data. This style sheet will
not result in an editable HTML form, but a static HTML table:</p>
<table width="100%" border="1" class="ex" cellspacing="0" id="table3">
<tr>
<td>
<pre><?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"></pre>
<pre><xsl:template match="/">
<html>
<body>
<h2>Updated Tool Information:</h2>
<table border="1">
<xsl:for-each select="tool/field">
<tr>
<td><xsl:value-of select="@id" /></td>
<td><xsl:value-of select="value" /></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template></pre>
<pre></xsl:stylesheet></pre>
</td>
</tr>
</table>
<p><a target="_blank" href="tool_updated.xsl">View the XSL file</a>.<br />
</p>
<hr />
<h2>The ASP File</h2>
<p>The HTML form in the "tool.xsl" file above has an action attribute with a value of "edittool.asp".</p>
<p>The "edittool.asp" page contains two functions: The loadFile()
function loads and transforms the XML file for display and the updateFile()
function applies the changes to the XML file:</p>
<table width="100%" border="1" class="ex" cellspacing="0">
<tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -