<?xml version="1.0"?> <catalog> <book id="bk101"> <author>Gambardella, Matthew</author> <title>XML Developer's Guide</title> <genre>Computer</genre> <price>44.95</price> <publish_date>2000-10-01</publish_date> <description>An in-depth look at creating applications with XML.</description> </book> <book id="bk102"> <author>Ralls, Kim</author> <title>Midnight Rain</title> <genre>Fantasy</genre> <price>5.95</price> <publish_date>2000-12-16</publish_date> <description>A former architect battles corporate zombies, an evil sorceress, and her own childhood to become queen of the world.</description> </book> </catalog>
xml은 이렇게 있습니다.
조건 : bk103이 있는지 체크하는것.
기존에는
<% SET xmlObj = Server.CreateObject("MSXML2.DOMDocument") xmlObj.Load("book.xml") SET xmlRoot = xmlObj.DocumentElement FOR i = 0 TO xmlRoot.ChildNodesLengh - 1 IF xmlRoot.ChildNodes.item(i).getAttribute("id") = "bk103" THEN IsChk = True ELSE IsChk = False END IF NEXT SET xmlRoot = Nothing SET xmlObj = Nothing IF IsChk = True THEN Response.write "bk103이 있습니다." ELSE Response.Write "bk103이 없습니다." END IF %>
이렇게 해줬습니다..FOR문으로 계속 돌면서 체크를 했죠..(제가 몰라서 그런걸수도 있습니다만..ㅎㅎ);
XPATH를 이용해서 간단히 해결하면 됩니다.
<% SET xmlObj = Server.CreateObject("MSXML2.DOMDocument") xmlObj.Load("book.xml") SET xmlPath = xmlObj.selectNodes("//book[@id='bk103']") IF xmlPath.length = 0 THEN IsChk = False ELSE IsChk = True END IF SET xmlPath = Nothing SET xmlObj = Nothing IF IsChk = True THEN Response.write "bk103이 있습니다." ELSE Response.Write "bk103이 없습니다." END IF %>
taeyo.net 에 올린글입니다만...그냥 여기에도 올려도 되겠죠??ㅎㅎ
제가 멍청해서 그런지 몰라도..꽤 힘들게 알아낸거라서.ㅎㅎ
혹시나 도움될까 해서 올려봅니다~ㅎ