필드 ID, 이름, 수량 및 가격이있는 주문이있는 XML이 있습니다. ID를 사용자의 입력으로 사용하고 에서 XML을 검색하여 원하는 값을 표시하는 페이지를 만들려고합니다. 내 XML이 추가되었습니다하지만 ""아래 저를 허용하지 않는 한자바 스크립트를 사용하여 HTML에서 XSLT로 값 전달하기
내 XML :
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="Order.xsl"?>
<orders>
<order>
<id>1</id>
<name>A</name>
<qty>5</qty>
<rate>10</rate>
</order>
</orders>
XSLT :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<script type="text/javascript">
function searchAcct()
{
AcctNum = document.getElementById("textbox1").value;
}
</script>
<body>
<form>
Enter Account Num# : <input type="text" name="textbox1" id="textbox1"></input>
<input type="submit" name="Submit" id="Submit" onclick="searchAcct()"></input>
</form>
<xsl:for-each select="orders/order">
<xsl:if test="id = AcctNum">
<xsl:value-of select="name"></xsl:value-of>
<xsl:value-of select="price"></xsl:value-of>
</xsl:if>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
나는 XML에 새로 온 사람과 XSLT 그렇게 수도 뭔가 잘못 코딩되었습니다 ... 제발 날 수정하십시오.
이것은 올바른 접근 방법이 아니므로 걱정됩니다. XSLT를 사용하여 XML로부터 HTML을 생성하고 있지만, HTML이 생성 되 자마자 XSLT는 사실 잊어 버리게됩니다. HTML은 텍스트 편집기에서 손으로 입력 한 경우와 다르게 브라우저에서 처리됩니다. JavaScript는 사용자가 표시 한 방식으로 XSLT와 상호 작용할 수 없습니다. 당신이 취할 수있는 한 가지 접근법은'order' 아이템을 숨겨진'DIV' 태그로 렌더링하고, id id를 기반으로 idid 속성을 만든 다음 javascript를 사용하여 텍스트 상자에 입력 한 id에 따라 관련 div를 표시합니다 . –
안녕하세요, Tim ... 답변 해 주셔서 감사합니다. 이것은 XML에서 HTML을 실행하려고 시도 할 때 XSLT 속성을 잊어 버린다는 것을 분명히합니다. 나는이 기술에 대해 아주 익숙하기 때문에 ID 속성을 사용하여 DIV 태그 개념을 정교하게 도울 수 있습니다. 시간이 허락한다면 ... 더 많은 것을 파헤 치려고 노력할 것입니다. – user3822147