## Friday, April 27, 2007

### Simple XML Parsing with PHP 4

Here's a very simple way to parse a small XML file with PHP 4 using the DOMXML module. This approach only makes sense since the file I'm working with is very small.
$qsOption = "";// Make sure the file exists.if ( !$dom = domxml_open_file("C:\path\to\file\file.xml") ) {  //echo "Error while parsing the document\n";  //exit;  // We'll exit quietly instead.}else{  $root =$dom->document_element();  $nodes =$dom->get_elements_by_tagname("topic");  $element = new DomElement(); foreach($nodes as $node) {$element = $node;$qsOption = $qsOption . "<option value=\"" .$element->get_attribute("tid") . "\">" .    \$element->get_content() . "</option>";  }}

### PHP .ini File with IIS on Windows Server 2003

I had to install PHP 4 under IIS on Windows Server 2003. The manual installation went fine, but PHP was looking for the php.ini file in C:\WINDOWS. I already added my install directory, C:\php, to the PATH environment variable and rebooted the machine, but this didn't seem to matter.

Buried on one of the many posts on php.net, I found a suggestion that worked. I had to add the following registry key (Start > Run > regedit)...
HKEY_LOCAL_MACHINE\SOFTWARE\PHP
...with the string value name IniFilePath and the value c:\php. After I did this, I did a hard stop of IIS and restarted it and the change took fine and saw the proper php.ini file.
C:\>iisreset /stopC:\>net start w3svc

## Thursday, April 12, 2007

I am completely incapable of remembering this for the rare times I need it.
<a href="javascript:void(0);">my link to nowhere</a>

## Wednesday, April 11, 2007

### Updating the Noise Word File in SQL Server 2000

I was trying to update two noise word files in SQL Server 2000 today, but there was a file lock holding on tight. The files were:
• C:\Program Files\Microsoft SQL Server\MSSQL\FTDATA\SQLServer\Config\noise.dat
• C:\Program Files\Microsoft SQL Server\MSSQL\FTDATA\SQLServer\Config\noise.eng

I stopped all the SQL Server services and the Indexing Service, but the files were still locked. After a little Googling, I found Unlocker, a very handy tool. This told me that the Microsoft Search service had the lock. I used Unlocker to remove the locks, made my edits, and restared all the services (including Microsoft Search for good measure).

## Monday, April 9, 2007

### Turn Off DTD Validation When Processing an XML File

I've had two situtions recently where I needed to turn off DTD validation before processing an XML file in a .NET app. The ability to do so is in the class library, but there aren't a lot of examples. Here are two ways using two different objects:
XmlDocument doc = new XmlDocument();doc.XmlResolver = null;// orXmlValidatingReader xmlReader =   new XmlValidatingReader(new XmlTextReader(openFileDialog1.FileName));xmlReader.ValidationType = ValidationType.None;
In the second example, the user was browsing for an XML file on the network and they requested the ability to use a non-validating file for testing purposes.