XSLT XML 편집
XML 파일에 저장된 데이터는 인터넷 브라우저를 통해 편집할 수 있습니다.
XML 열기, 편집, 저장
이제 서버에 저장된 XML 파일을 열고 편집하고 저장하는 방법을 보여드리겠습니다.
XSL을 사용하여 XML 문서를 HTML 형식으로 변환하겠습니다. XML 요소의 값은 HTML 양식의 HTML 입력 필드에 기록됩니다. 이 HTML 양식은 편집 가능합니다. 편집된 후 데이터는 서버로 다시 제출되고 XML 파일이 업데이트됩니다(이 작업은 ASP에서 수행됨).
XML 파일 및 XSL 파일
먼저 사용될 XML 문서("tool.xml")를 살펴보세요.
<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>
查看 XML 문서입니다.
接着,请看下面的样式表("tool.xsl"):
< xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html> ;
<body>
<form method="post" action="edittool.html">
<h2>도구 정보(편집):</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="재설정" />
</form>
</body>
</html>
</xsl:template>
</xsl:스타일시트>
XSL 파일 보기.
위의 XSL 파일은 XML 파일의 요소를 반복하고 각 XML "필드" 요소에 대한 입력 필드를 생성합니다. XML "필드" 요소의 "id" 속성 값은 각 HTML 입력 필드의 "id" 및 "name" 속성에 추가됩니다. 각 XML "값" 요소의 값은 각 HTML 입력 필드의 "값" 속성에 추가됩니다. 결과는 XML 파일의 값을 포함하는 편집 가능한 HTML 양식입니다.
그런 다음 두 번째 스타일시트인 "tool_updated.xsl"이 있습니다. 이 XSL 파일은 업데이트된 XML 데이터를 표시하는 데 사용됩니다. 이 스타일시트는 편집 가능한 HTML 양식이 아닌 정적 HTML 양식을 출력합니다.
<xsl:stylesheet version ="1.0 "
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
< body>
<h2>업데이트된 도구 정보:</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>
</xsl:stylesheet> ;
XSL 파일 보기.
ASP 파일
위 "tool.xsl" 파일에서 HTML 폼의 action 속성 값은 "edittool.asp" 입니다.
"edittool.asp" 페이지에는 두 가지 함수가 포함되어 있습니다. loadFile() 함수는 XML 파일을 로드 및 변환하고, updateFile() 함수는 XML 파일을 업데이트합니다.
function loadFile(xmlfile,xslfile)
Dim xmlDoc, xslDoc
'XML 파일 로드
set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = false
xmlDoc.load(xmlfile)
'XSL 파일 로드
set xslDoc = Server.CreateObject("Microsoft.XMLDOM" " )
xslDoc.async = false
xslDoc.load(xslfile)
'변형 파일
Response.Write(xmlDoc.transformNode(xslDoc))
end function
function updateFile(xmlfile)
Dim xmlDoc,rootEl,f
Dim i
'XML 파일 로드
set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = false
xmlDoc.load(xmlfile)
'rootEl 변수를 루트 요소와 동일하게 설정
rootEl = xmlDoc 설정. documentElement
'양식 컬렉션을 통해 루프
for i = 1 To Request.Form.Count
'양식에서 버튼 요소 제거
if instr(1,Request.Form.Key(i),"btn_")=0 then
'selectSingleNode 메소드는 쿼리와 일치하는 단일 노드
'에 대해 XML 파일을 쿼리합니다. 이 쿼리는
'현재 키 값과 일치하는 id 속성이 있는 필드 요소의 하위'인 값 요소를 요청합니다. 일치하는 항목이 있는 경우 -
'text 속성을
'Form Collection의 현재 필드 값과 동일하게 설정합니다.
set f = rootEl.selectSingleNode("field[@id='" & _
Request.Form.Key(i) & "']/value")
f.Text = Request.Form(i)
end if
next
'수정된 XML 파일 저장
xmlDoc.save xmlfile
'모두 해제 객체 참조
set xmlDoc=nothing
set rootEl=nothing
set f=nothing
'수정된 XML 파일을 스타일 시트로 로드
'클라이언트가 편집된 정보를 볼 수 있도록 허용
loadFile xmlfile,server.MapPath(" tool_updated .xsl")
end function
'양식이 제출된 경우
'XML 파일을 업데이트하고 결과를 표시합니다. 그렇지 않은 경우
'편집을 위해 XML 파일을 변환
if Request.Form("btn_sub")=" " then
loadFile server.MapPath("tool.xml"),server.MapPath("tool.xsl")
else
updateFile server.MapPath("tool.xml")
end if
%>
Tip : ASP 작성 방법을 모르신다면 ASP 튜토리얼을 읽어보세요.
참고: 서버에 있는 XML 파일을 변환하고 업데이트하고 있습니다. 이는 크로스 플랫폼 솔루션입니다. 클라이언트는 서버에서 반환된 HTML만 가져오며 HTML은 모든 브라우저에서 실행됩니다.