Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 21st, 2012  |  syntax: None  |  size: 1.98 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Using OPENXML to parse IIS MetaBase.xml
  2. <configuration xmlns="urn:microsoft-catalog:XML_Metabase_V64_0">
  3.   <MBProperty>
  4.     <IIsWebDirectory Location="/LM/W3SVC/1/ROOT/MySite1" AppFriendlyName="MySite1" AppIsolated="2" AppPoolId="MySite1" AppRoot="/LM/W3SVC/1/ROOT/MySite1" DontLog="TRUE">    
  5.     </IIsWebDirectory>
  6.     <IIsWebDirectory Location="/LM/W3SVC/1/ROOT/MySite2" AppFriendlyName="MySite2" AppIsolated="2" AppPoolId="MySite2" AppRoot="/LM/W3SVC/1/ROOT/MySite2" DontLog="TRUE">    
  7.     </IIsWebDirectory>
  8.   </MBProperty>
  9. </configuration>
  10.        
  11. DECLARE @XMLPath VARCHAR(MAX)
  12. SELECT @XMLPath = 'C:TempMetaBase.xml'
  13.  
  14. DECLARE @RawXML XML, @sql NVARCHAR(4000), @params NVARCHAR(4000), @handle INT
  15. SELECT @sql = N'SELECT @res = (SELECT * FROM OPENROWSET (BULK '''+ @XMLPath +''', SINGLE_BLOB)x)'
  16. SELECT @params = N'@res XML OUTPUT'
  17. EXEC sp_executesql @sql, @params, @res = @RawXML OUTPUT
  18.  
  19. SELECT @RawXML
  20.  
  21. EXEC sp_xml_preparedocument @handle OUTPUT, @RawXML
  22. SELECT *
  23. FROM OPENXML(@handle, 'MBProperty/IISWebDirectory', 3) WITH (AppFriendlyName VARCHAR(800), Location VARCHAR(800), AppRoot VARCHAR(800), AppPoolId VARCHAR(800), DefaultDoc VARCHAR(800))
  24. EXEC sp_xml_removedocument @handle
  25.        
  26. EXEC sp_xml_preparedocument @handle OUTPUT, @RawXML, '<root xmlns:ns="urn:microsoft-catalog:XML_Metabase_V64_0" />'
  27.  
  28. SELECT *
  29. FROM OPENXML(@handle, 'ns:configuration/ns:MBProperty/ns:IIsWebDirectory', 3) WITH
  30.   (AppFriendlyName VARCHAR(800),
  31.    Location VARCHAR(800),
  32.    AppRoot VARCHAR(800),
  33.    AppPoolId VARCHAR(800),
  34.    DefaultDoc VARCHAR(800))
  35. EXEC sp_xml_removedocument @handle
  36.        
  37. ;with xmlnamespaces ('urn:microsoft-catalog:XML_Metabase_V64_0' as ns)
  38. select
  39.   n.i.value('@AppFriendlyName', 'varchar(800)') as AppFriendlyName,
  40.   n.i.value('@Location', 'varchar(800)') as Location,
  41.   n.i.value('@AppRoot', 'varchar(800)') as AppRoot,
  42.   n.i.value('@AppPoolId', 'varchar(800)') as AppPoolId,
  43.   n.i.value('@DefaultDoc', 'varchar(800)') as DefaultDoc
  44. from @RawXML.nodes('ns:configuration/ns:MBProperty/ns:IIsWebDirectory') as n(i)