Link to home
Start Free TrialLog in
Avatar of rortiz77
rortiz77

asked on

Looking for a XSL generator from an XML tree view

Is there a program out there where I can create my stylesheet (xsl) from the tree view of my XML file? I just want to see the nodes from the tree and select the nodes I want.  Then create the stylesheet from that so it will only select the nodes and give me an output with the selected nodes.  Is there something out there like that?
Avatar of R7AF
R7AF
Flag of Netherlands image

You can try these two:
http://www.stylusstudio.com/xslt.html
http://www.altova.com/products/xmlspy/xml_editor.html

I've never used Stylusstudio, but what I hear from it, it should better than Altova. I've used Altova, and it was a nice way to start out with XSLT. After a while it limited me, but maybe it is sufficient for you.
Avatar of Gertone (Geert Bormans)
I am not aware of a tool, like you just described
but the XSLT mapper from Stylus Studio comes pretty close
If you have an example XML and an example XML result (or HTML result)
you can draw lines from one tree view to the other tree view
and as such create an XSLT by drawing it in a GUI
http://www.stylusstudio.com/xslt_mapper.html

I second R7AFs opinion on the quality of Stylus... it rocks.
Don't waste your money on Altova products. They look shiny, but they are buggy and pretty limited inside.
If you have some money to spend on a decent IDE, it would be Stylus Studio

cheers

Geert
Avatar of rortiz77
rortiz77

ASKER

All,

It looks like I had to create a sample destination xml file in order to match up what I want.  After I made the destination xml file and created the different nodes I then matched up the nodes that I was looking for together.  The problem I'm having now is when I click on the "preview" it only shows me the preview in the tree mode and it only shows me 1 section of the information and not all.  My XML source file is a 20 mb file of an export to XML of an Address book.  Essentially, this xsl I just made only shows me the 1st entry of the address book.  What I am doing wrong that it only shows me only the 1st entry and not all 1500?  And why is it only showing it in the tree view and not HTML?

Thanks!
> It looks like I had to create a sample destination xml file in order to match up what I want.
That is correct, indeed.

You can select the way it is viewed on the left (there are some icons) of the result pane. if you push the internet explorer icon, you will see a  browser preview. The icon underneath the IE icon (a rectangle with some small line) indicates full text view of the result

if you post a part of the XML with 2 entries of your addressbook and your current XSLT,
we will correct that

cheers

Geert
Here are two entries from the address book of two different physicians:
            <recipient obj_name="[Anthony Scott MD -FRi]">
                  <description>*** FRI Project ***

31 West Columbia Street
Orlando, Florida  32806
       
Ph:407 422 8290    
Fax:407-4224876          
Built 03/21/05 /SJS
added dpl code to parent record...ars268 10/04/05</description>
                  <identity>
                        <notification>
                              <notify_language locale="1033" language="English (United States)"/>
                              <sender_notification>default</sender_notification>
                        </notification>
                  </identity>
                  <inbox_list>
                        <inbox obj_name="&lt;Default>">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="Inbox Type" value="Practice"/>
                              <inbox_attribute obj_name="physician id" value="SQ"/>
                              <inbox_attribute obj_name="Report ID" value="All"/>
                              <inbox_attribute obj_name="Report ID" value="FHO Medical Record"/>
                              <inbox_attribute obj_name="Report ID" value="FHO Radiology Consultation"/>
                        </inbox>
                        <inbox obj_name="Anthony Scott MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>true</allow_delete_by_owner>
                              <retain_for>forever</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="900676"/>
                        </inbox>
                  </inbox_list>
                  <location obj_name="Office Fax">
                        <recip_attribute obj_name="Inbox Type" value="Fax"/>
                        <recip_attribute obj_name="physician id" value="900676"/>
                        <recip_attribute obj_name="report id" value="All"/>
                        <recip_attribute obj_name="Report ID" value="FHO Medical Record"/>
                        <recip_attribute obj_name="Report ID" value="FHO Radiology Consultation"/>
                        <recip_address type="fax" priority="50.00" device="FHO_PROD_DV1A/Fax FHO A" address="+1 (407) 4224876"/>
                        <notification>
                              <ntfy_type>default</ntfy_type>
                        </notification>
                  </location>
                  <security>
                        <role obj_name="PIT Technical" docuvault="FHO_PROD_DV1A"/>
                  </security>
            </recipient>
            <recipient obj_name="[Antonio L. Rodriguez MD]">
                  <description>Pulmonary Diseases
added address 10/04/05...ars268
101 Edinburgh Dr.
Winter Park, FL. 32792
Office: 407-647-6886
Fax: 407-647-2431

8000 Red Bug Lake Rd.
Oviedo, FL 32765

9/24/03- Added in Cypress/MSH
10/1/03- Added SJWB60 and 012595 to Identity per Delia/MSH

Added 1 user 8/27/04/SJS
added fax tab as requested by Delia 10/26/04 /SJS
added only Radiology and Pathology
12/14/05 Added missing 012595 to fax/NMMEF3
2/19/07 Rmvd MALF51, Added LMT975,JCR03A,MEPD4B\NMMEF3
08/01/07 add DAR696, rmv LMT975/ssgc23</description>
                  <identity>
                        <e-mail>Antonio.Rodriguez.MD@Flhosp.org</e-mail>
                        <notification>
                              <notify_language locale="0" language="English (United States)"/>
                              <sender_notification>default</sender_notification>
                        </notification>
                        <nt_logon>
                              <user domain_name="FHD" account_name="012595"/>
                              <user domain_name="FHD" account_name="DAR138"/>
                              <user domain_name="FHD" account_name="DAR696"/>
                              <user domain_name="FHD" account_name="JCR03A"/>
                              <user domain_name="FHD" account_name="MEPD4B"/>
                              <user domain_name="FHD" account_name="SJWB60"/>
                        </nt_logon>
                  </identity>
                  <inbox_list>
                        <inbox obj_name="&lt;Default>">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Practice"/>
                              <inbox_attribute obj_name="practice id" value="VG"/>
                              <inbox_attribute obj_name="report id" value="All"/>
                              <inbox_attribute obj_name="report id" value="FHO Medical Record"/>
                              <inbox_attribute obj_name="report id" value="FHO Radiology Consultation"/>
                        </inbox>
                        <inbox obj_name="Antonio L. Rodriguez, MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="012595"/>
                              <inbox_attribute obj_name="Specialty" value="PUD"/>
                        </inbox>
                  </inbox_list>
                  <location obj_name="Office Fax">
                        <recip_attribute obj_name="inbox type" value="Fax"/>
                        <recip_attribute obj_name="physician id" value="012595"/>
                        <recip_attribute obj_name="physician id" value="VG"/>
                        <recip_attribute obj_name="report id" value="FHO CoPath Transcription"/>
                        <recip_attribute obj_name="report id" value="FHO Cummulative Outpatient"/>
                        <recip_attribute obj_name="report id" value="FHO FPL Report"/>
                        <recip_attribute obj_name="report id" value="FHO Radiology Consultation"/>
                        <recip_address type="fax" priority="50.00" device="FHO_PROD_DV1A/Fax FHO A" address="+1 (407) 6472431"/>
                        <notification>
                              <ntfy_type>default</ntfy_type>
                        </notification>
                  </location>
                  <security>
                        <user domain_name="FHD" account_name="MSH4B8" permission="803F"/>
                        <role obj_name="PIT Technical" docuvault="FHO_PROD_DV1A"/>
                  </security>
            </recipient>


__________________________________________________________________________
This is my xsl code that the match generated.

<?xml version='1.0' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template match="/">
            <Docuvault>
                  <Recipient_List>
                        <Recipient>
                              <xsl:attribute name="Obj_Name">
                                    <xsl:value-of select="docuvault_settings/recipient_list/recipient/@obj_name"/>
                              </xsl:attribute>
                              <Identity>
                                    <NT_logon>
                                          <User>
                                                <xsl:attribute name="Account_name">
                                                      <xsl:value-of select="docuvault_settings/recipient_list/recipient/identity/nt_logon/user/@account_name"/>
                                                </xsl:attribute>
                                          </User>
                                    </NT_logon>
                              </Identity>
                              <Inbox_list>
                                    <Inbox>
                                          <xsl:attribute name="Obj_name">
                                                <xsl:value-of select="docuvault_settings/recipient_list/recipient/inbox_list/inbox/@obj_name"/>
                                          </xsl:attribute>
                                          <Inbox_Attribute>
                                                <xsl:attribute name="Obj_name">
                                                      <xsl:value-of select="docuvault_settings/recipient_list/recipient/inbox_list/inbox/inbox_attribute/@obj_name"/>
                                                </xsl:attribute>
                                                <xsl:attribute name="Value">
                                                      <xsl:value-of select="docuvault_settings/recipient_list/recipient/inbox_list/inbox/inbox_attribute/@value"/>
                                                </xsl:attribute>
                                          </Inbox_Attribute>
                                    </Inbox>
                              </Inbox_list>
                              <Location>
                                    <Recip_Address>
                                          <xsl:attribute name="address">
                                                <xsl:value-of select="docuvault_settings/recipient_list/recipient/location/recip_address/@address"/>
                                          </xsl:attribute>
                                    </Recip_Address>
                              </Location>
                        </Recipient>
                  </Recipient_List>
            </Docuvault>
      </xsl:template>
</xsl:stylesheet>
_________________________________________________________________________

What I'm trying to gather is simply a list of all the:
-Practice names (recipient obj_name="") which is always the name in [Name]
-DPL Code which is the "practice id" in this xml code
-The fax number found in the address="" node.
-All the OPID's in the nt_logon node
-All physician names associated to this entry in inbox obj_name=""
-Admit # which is inbox_attribute obj_name="physician id" value=""

So in theory the output would look like:
Address_Name                  DPL      Fax#            Physician(s)                  Admit#
----------------------------------------------------------------------------------------------
[All About Kids Pediatrics]      KX      (407) 3545436      Armando Garcia MD            110402
                                          Catherine Scherer DO            13207
                                          David Duany MD                  110401
                                          Gabriela Roitman-Geller MD      110403

also, is there a way to have this output be a csv?  My users will most likely want to open this up on Excel so they can sort out the users who have fax and those who don't.  

Thanks!!!!
I see what happened.
You will get some result in Stylus, but the process breaks because your XML is not wellformed
all your <recipient> elements should be inside one single root element
if you wrap a <recipients> element around the 1500 recipient elements, you will be fine
Ok, I'm lost.  I thought it was wrapped around one single root.  This is my tree view:

-Docuvault
  |__Recipient_List    <---the root where all the 1500 recipients should go under
       |__Recipient      
               |   --Obj_Name   <--name of that Inbox
               |__Identity
               |    |__NT_Logon
               |        |__User        
               |           --Account_name     <----name of the OPID
               |__Inbox_List
               |    |__Inbox
               |         |  --Obj_name       <---Physician Name
               |         |__Inbox_Attribute
        |             --Obj_name    <---- Text = Practice ID
               |             --Value          <---Practice ID
        |      
               |__Location
             |__Recip_Address
                 --Address             <----fax number

What part looks wrong?  Again, I'm a total newbie :-D
What I dont know also is if there are some cardinality rules I'm missing.  In the Source window it always shows the nodes that have "many" with a different icon that looks like:
      [ ]
       |
 ___|___
[ ]   [ ]    [ ]

and on my destination it has what looks like a one-to-one icon like:
  [ ]
   |
  [ ]

Is this also why it's only showing me one entry?
Aparently the DocuVault didn't get copied to your post

I will check the issue in Stylus later,
but your XSLT probes for the single values of the first record only (that is what value-of does),
where it should not

I split the templates up,
passing nodes to the new template

<?xml version='1.0' ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:template match="/">
            <Docuvault>
                <Recipient_List>
                        <xsl:apply-templates select="//recipient" />
                </Recipient_List>
            </Docuvault>
        </xsl:template>
       
        <xsl:template match="recipient">
            <Recipient>
                <xsl:attribute name="Obj_Name">
                    <xsl:value-of select="@obj_name"/>
                </xsl:attribute>
                <Identity>
                    <NT_logon>
                        <User>
                            <xsl:attribute name="Account_name">
                                <xsl:value-of select="identity/nt_logon/user/@account_name"/>
                            </xsl:attribute>
                        </User>
                    </NT_logon>
                </Identity>
                <Inbox_list>
                    <Inbox>
                        <xsl:attribute name="Obj_name">
                            <xsl:value-of select="inbox_list/inbox/@obj_name"/>
                        </xsl:attribute>
                        <Inbox_Attribute>
                            <xsl:attribute name="Obj_name">
                                <xsl:value-of select="inbox_list/inbox/inbox_attribute/@obj_name"/>
                            </xsl:attribute>
                            <xsl:attribute name="Value">
                                <xsl:value-of select="inbox_list/inbox/inbox_attribute/@value"/>
                            </xsl:attribute>
                        </Inbox_Attribute>
                    </Inbox>
                </Inbox_list>
                <Location>
                    <Recip_Address>
                        <xsl:attribute name="address">
                            <xsl:value-of select="location/recip_address/@address"/>
                        </xsl:attribute>
                    </Recip_Address>
                </Location>
            </Recipient>
        </xsl:template>
    </xsl:stylesheet>

try this, that should be a lot better

I looked at what the problem in Stylus is.
You explicitely have to start a template and map the target node for the template
to get the apply-templates construct
... there is a reason why I don't like these gui mapping tools :-)

> also, is there a way to have this output be a csv?
yes, set the output method to "text" and set tabs between records, like this
<xsl:text>&#09;</text>
and newlines like this
<xsl:text>&#13;&#10;</text>


this would be the csv stylesheet

<?xml version='1.0' ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="text"/>
        <xsl:template match="/">
                        <xsl:apply-templates select="//recipient" />
        </xsl:template>
       
        <xsl:template match="recipient">
                    <xsl:value-of select="@obj_name"/>
            <xsl:text>&#09;</xsl:text>
                <xsl:value-of select="identity/nt_logon/user/@account_name"/>
            <xsl:text>&#09;</xsl:text>
            <xsl:value-of select="inbox_list/inbox/@obj_name"/>
            <xsl:text>&#09;</xsl:text>
            <xsl:value-of select="inbox_list/inbox/inbox_attribute/@obj_name"/>
            <xsl:text>&#09;</xsl:text>
            <xsl:value-of select="inbox_list/inbox/inbox_attribute/@value"/>
            <xsl:text>&#09;</xsl:text>
            <xsl:value-of select="location/recip_address/@address"/>
            <xsl:text>&#13;&#10;</xsl:text>
        </xsl:template>
    </xsl:stylesheet>

Wow! Alot closer to what I need!!!  The fields are in the wrong place but thats ok...its easier to rename the fields ;-)   I think based on that I should be able to figure out how to get the physician names as well.  The only part I might get lost in is displaying when an account has multiple users and physicians.  Not sure if it will want to create duplicate site names too.  I'll keep playing and I'll see how far I can push that hamster in my head :-)
removing duplicates is a little bit more complex,
it requires a technique called muenchian grouping
If you come to a point where you need to remove duplicate nodes, let us know
cheers

Geert
Well, what I'm noticing is that its grabbing the 1st attribute but not the following ones after that.  
For example:
I now get this..

Site                                        OPID              Name         Admit #            DLP_Code         Fax#
[Neurology Care Center]            JHE78B           <Default>   123456             2P                   (407) 2824433


But what I need is:
Site                                        OPID              Name               Admit #            DLP_Code         Fax#
[Neurology Care Center]            JHE78B           <Default>          122456             2P                   (407) 2824433
                                              JY3LI            James, Lee       901283
                                              ROR84D       Ortiz, Ruben     928173
                                              ...                  ...

Sorry, forgot I needed that "Admit#" as well :)  But does that make sense?
well, seems we need another iteration

<?xml version='1.0' ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="text"/>
        <xsl:template match="/">
                        <xsl:apply-templates select="//recipient" />
        </xsl:template>
       
        <xsl:template match="recipient">
            <xsl:apply-templates select="inbox_list/inbox" />
        </xsl:template>
       
        <xsl:template match="inbox_list/inbox">
            <xsl:choose>
                <xsl:when test="position() = 1">
                    <xsl:value-of select="../../@obj_name"/>
                    <xsl:text>&#09;</xsl:text>
                    <xsl:value-of select="../../identity/nt_logon/user/@account_name"/>
                    <xsl:text>&#09;</xsl:text>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:text>&#09;</xsl:text>
                    <xsl:text>&#09;</xsl:text>
                </xsl:otherwise>
            </xsl:choose>
            <xsl:value-of select="inbox/@obj_name"/>
            <xsl:text>&#09;</xsl:text>
            <xsl:value-of select="inbox_attribute/@obj_name"/>
            <xsl:text>&#09;</xsl:text>
            <xsl:value-of select="inbox_attribute/@value"/>
            <xsl:text>&#09;</xsl:text>
            <xsl:value-of select="../../location/recip_address/@address"/>
            <xsl:text>&#13;&#10;</xsl:text>
        </xsl:template>
    </xsl:stylesheet>

cheers

Geert
How does this save it to a file?  I am running this so far on my firefox browser.  I see the text but its not formatted.  Can it save it to a file? or does it still have to be viewed in the browser?
I think the HTML view might be cleaner if it cannot be viewed from excel.  I noticed you were able to have it display more info per account.  

This here is how I've modified the HTML version:

<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
      <xsl:template match="docuvault_settings">
            <html>
                  <body>
                        <h2>Physician's with OPID's</h2>
                        <table border="1">
                              <tr bgcolor="#9acd32">
                                    <th align="left">Site</th>
                                    <th align="left">OPID</th>
                                    <th align="left">Physician Name</th>
                                    <th align="left">DPL_Code</th>
                                                      <th align="left">Admit #</th>
                                    <th align="left">Fax #</th>
                              </tr>
                              <xsl:apply-templates select="recipient_list"/>
                               
                             
                        </table>
                  </body>
            </html>
      </xsl:template>
     
      <xsl:template match="recipient">
            <tr>
                  <td><xsl:value-of select="@obj_name"/></td>
                  <td><xsl:value-of select="identity/nt_logon/user/@account_name"/></td>
                  <td><xsl:value-of select="inbox_list/inbox/@obj_name"/></td>
                  <td><xsl:value-of select="inbox_list/inbox/inbox_attribute[@obj_name='Practice ID']/@value"/></td>
                  <td><xsl:value-of select="inbox_list/inbox/inbox_attribute[@obj_name='Physician ID']/@value"/></td>
                          <td><xsl:value-of select="location/recip_address[@type='fax']/@address"/></td>
            </tr>
      </xsl:template>
     
</xsl:stylesheet>

All looks perfect except for the Muilitple doctors/OPID's/Admit#'s.  I still have to figure that part out and then its done!! :-D
If you want to save as a file,
there are some options

You could use a command-line transformation.
You have three options, Xalan, Saxon or xsltproc. I recommend Saxon.
Here is a page that explains how to install and use all three of them
http://www.sagehill.net/docbookxsl/InstallingAProcessor.html
I just checked, it is pretty up-to-date, though Saxon is at 6.5.5 for XSLT1
 and XSLT2 is a full recommendation now, so Saxon8B is pretty stable.
All these processors work on most platforms and are free of charge.

you could also use Stylus, since you have been using it anyway
for your transformation you can create a scenarion (simply open the scenario window)
if you choose and input and output file
the transformation will write its result in the output file

cheers

Geert
Here is the HTML version with a deeper iteration
The difficult thing is getting the row spans
It reqires some looking up the tree
.. means the parent

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   
    <xsl:template match="/">
        <html>
            <body>
                <h2>Physician's with OPID's</h2>
                <table border="1">
                    <tr bgcolor="#9acd32">
                        <th align="left">Site</th>
                        <th align="left">OPID</th>
                        <th align="left">Physician Name</th>
                        <th align="left">DPL_Code</th>
                        <th align="left">Admit #</th>
                        <th align="left">Fax #</th>
                    </tr>
                    <xsl:apply-templates select=".//recipient"/>
                </table>
            </body>
        </html>
    </xsl:template>
   
    <xsl:template match="recipient">
        <xsl:apply-templates select=".//inbox" />
    </xsl:template>
   
    <xsl:template match="inbox">
        <tr>
            <xsl:if test="position() = 1">
                <td rowspan="{count(../.././/inbox)}"><xsl:value-of select="../../@obj_name"/></td>
                <td rowspan="{count(../.././/inbox)}"><xsl:value-of select="../../identity/nt_logon/user/@account_name"/></td>
            </xsl:if>
         <td><xsl:value-of select="@obj_name"/></td>
            <td><xsl:value-of select="inbox_attribute[@obj_name='practice id']/@value"/></td>
            <td><xsl:value-of select="inbox_attribute[@obj_name='physician id']/@value"/></td>
            <xsl:if test="position() = 1">
                <td rowspan="{count(../.././/inbox)}"><xsl:value-of select="../../location/recip_address[@type='fax']/@address"/></td>
            </xsl:if>
        </tr>
    </xsl:template>

   
</xsl:stylesheet>

cheers

Geert
Everything but the nt_logon isn't populating the list of OPID's.  The physicians are populating with their Admit#'s :-)  The only piece left is the population of the nt_logon...soOOoOoo close!!!  So far looks beautiful!  Jumping up and down right now! :D
Hi,

I am not sure I understand what you need
It seems like you want an iteration over the users, along with iterating over the inboxes
if that is the case, use this template in your stylesheet

        <xsl:template match="inbox_list/inbox">
            <xsl:variable name="pos" select="position()" />
            <xsl:choose>
                <xsl:when test="position() = 1">
                    <xsl:value-of select="../../@obj_name"/>
                    <xsl:text>&#09;</xsl:text>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:text>&#09;</xsl:text>
                </xsl:otherwise>
            </xsl:choose>
            <xsl:value-of select="../../identity/nt_logon/user[position() = $pos]/@account_name"/>
            <xsl:text>&#09;</xsl:text>
            <xsl:value-of select="inbox/@obj_name"/>
            <xsl:text>&#09;</xsl:text>
            <xsl:value-of select="inbox_attribute/@obj_name"/>
            <xsl:text>&#09;</xsl:text>
            <xsl:value-of select="inbox_attribute/@value"/>
            <xsl:text>&#09;</xsl:text>
            <xsl:value-of select="../../location/recip_address/@address"/>
            <xsl:text>&#13;&#10;</xsl:text>
        </xsl:template>

if this is not what it should be, paste a recent XML snippet and how you want that specific XML to be transformed

cheers

Geert
Here's the current one that works 99.9% perfect :)

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   
    <xsl:template match="/">
        <html>
            <body>
                <h2>Physician's with OPID's</h2>
                <table border="1">
                    <tr bgcolor="#9acd32">
                        <th align="left">Site</th>
                        <th align="left">OPID</th>
                        <th align="left">Physician Name</th>
                        <th align="left">DPL_Code</th>
                        <th align="left">Admit #</th>
                        <th align="left">Fax #</th>
                    </tr>
                    <xsl:apply-templates select=".//recipient"/>
                </table>
            </body>
        </html>
    </xsl:template>
   
    <xsl:template match="recipient">
        <xsl:apply-templates select=".//inbox" />
    </xsl:template>
   
    <xsl:template match="inbox">
        <tr>
            <xsl:if test="position() = 1">
                <td rowspan="{count(../.././/inbox)}"><xsl:value-of select="../../@obj_name"/></td>
               <td rowspan="{count(../.././/inbox)}"><xsl:value-of select="../../identity/nt_logon/user/@account_name"/></td>
            </xsl:if>
         <td><xsl:value-of select="@obj_name"/></td>
                <td><xsl:value-of select="inbox_attribute[@obj_name='practice id']/@value"/></td>
            <td><xsl:value-of select="inbox_attribute[@obj_name='physician id']/@value"/></td>
            <xsl:if test="position() = 1">
                <td rowspan="{count(../.././/inbox)}"><xsl:value-of select="../../location/recip_address[@type='fax']/@address"/></td>
            </xsl:if>
        </tr>
    </xsl:template>

   
</xsl:stylesheet><!-- Stylus Studio meta-information - (c) 2004-2007. Progress Software Corporation. All rights reserved.
<metaInformation>
<scenarios/><MapperMetaTag><MapperInfo srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/><MapperBlockPosition></MapperBlockPosition><TemplateContext></TemplateContext><MapperFilter side="source"></MapperFilter></MapperMetaTag>
</metaInformation>
-->

This is an example of what its doing:

Site            OPID    Physician Name           DPL_Code  Admit #      Fax #
[Cardio Ass.]   AMO33C  <Default>
                        Alejandro Franceschi MD  Q9        014339       +1 (407) 8721875
                  Johnson P. Massey MD
                        Mukesh Kumar MD                    013997
                        Patrick F. Mathias MD
                        Prashanta Laddu MD
                        Robert L. Barrett MD
                        Rodolfo E. Aldir MD
                        Thomas Kim MD      

What is missing in this final part is the OPID's to all the physicians which is in the "identity/nt_logon/user/@account_name" section.  It should look like this:

Site            OPID    Physician Name           DPL_Code  Admit #      Fax #
[Cardio Ass.]   AMO33   <Default>
missing-------->ANMDA   Alejandro Franceschi MD  Q9        014339       +1 (407) 8721875
missing-------->BJCF8      Johnson P. Massey MD               039283
missing-------->JAC26   Mukesh Kumar MD                    013997
missing-------->PFM39   Patrick F. Mathias MD              382938
missing-------->PL320   Prashanta Laddu MD                 029183
missing-------->RLB39   Robert L. Barrett MD               372827
missing-------->REA32   Rodolfo E. Aldir MD                381938
missing-------->TK392   Thomas Kim MD                      019384

So the part that is not displaying the entire list is the nt_logon account name.    
Can you also post the XML for this?
Here's a sample of the entire xml.  

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="Test_07.xsl"?>
<docuvault_settings docuvault_name="FHO_PROD_DV1A" database_version="5.5.1.17" unit_of_measure="inches">
      <recipient_list>
<recipient obj_name="[Immediate Quality Care Clinic]">
                  <description>8/11/06 Created, Awaiting DPL/NMMEF3
3403 Technological Ave, Suite 14
Orlando, FL 32817
407 275 5055
407 275 5115 (fax)

8/11/06 Added fax site/NMMEF3
8/11/06 Added DPL code #8/ADH649
1/8/07 Added JEDD36, AMY1C2/NMMEF3</description>
                  <identity>
                        <e-mail>Jose.Lopez@flhosp.org</e-mail>
                        <notification>
                              <notify_language locale="1033" language="English (United States)"/>
                              <sender_notification>default</sender_notification>
                        </notification>
                        <nt_logon>
                              <user domain_name="FHD" account_name="AMY1C2"/>
                              <user domain_name="FHD" account_name="FRO268"/>
                              <user domain_name="FHD" account_name="JEDD36"/>
                              <user domain_name="FHD" account_name="KPM6B0"/>
                        </nt_logon>
                  </identity>
                  <inbox_list>
                        <inbox obj_name="&lt;Default>">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="Inbox Type" value="Practice"/>
                              <inbox_attribute obj_name="Practice ID" value="#8"/>
                              <inbox_attribute obj_name="Report ID" value="All"/>
                              <inbox_attribute obj_name="Report ID" value="FHO Medical Record"/>
                              <inbox_attribute obj_name="Report ID" value="FHO Radiology Consultation"/>
                        </inbox>
                        <inbox obj_name="Ronald E. Breinninger, MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>true</allow_delete_by_owner>
                              <retain_for>forever</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="211409"/>
                              <inbox_attribute obj_name="report id" value="All"/>
                        </inbox>
                  </inbox_list>
                  <location obj_name="Office Fax">
                        <recip_attribute obj_name="physician id" value="211409"/>
                        <recip_attribute obj_name="practice id" value="#8"/>
                        <recip_attribute obj_name="report id" value="All"/>
                        <recip_attribute obj_name="report id" value="FHO Medical Record"/>
                        <recip_attribute obj_name="report id" value="FHO Radiology Consultation"/>
                        <recip_address type="fax" priority="50.00" device="FHO_PROD_DV1A/Fax FHO I" address="+1 (407) 2755115"/>
                        <notification>
                              <ntfy_type>default</ntfy_type>
                        </notification>
                  </location>
                  <security>
                        <role obj_name="PIT Technical" docuvault="FHO_PROD_DV1A"/>
                  </security>
            </recipient>
            <recipient obj_name="[Imogene White MD]">
                  <description>Obstetrics &amp; Gynecology

9/29/05 New Fax site per P125034 /GLW
10-3-05 Add DPL code /GLW</description>
                  <identity>
                        <e-mail>Imogene.White.MD@flhosp.org</e-mail>
                        <notification>
                              <notify_language locale="1033" language="English (United States)"/>
                              <sender_notification>default</sender_notification>
                        </notification>
                  </identity>
                  <inbox_list>
                        <inbox obj_name="&lt;Default>">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="Inbox Type" value="Practice"/>
                              <inbox_attribute obj_name="practice id" value="7B"/>
                              <inbox_attribute obj_name="Report ID" value="All"/>
                              <inbox_attribute obj_name="report id" value="FHO Medical Record"/>
                              <inbox_attribute obj_name="report id" value="FHO Radiology Consultation"/>
                        </inbox>
                        <inbox obj_name="Imogene White MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>true</allow_delete_by_owner>
                              <retain_for>forever</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="012112"/>
                              <inbox_attribute obj_name="physician id" value="910958"/>
                              <inbox_attribute obj_name="Specialty" value="OBG"/>
                        </inbox>
                  </inbox_list>
                  <location obj_name="[Office Fax]">
                        <recip_attribute obj_name="inbox type" value="Fax"/>
                        <recip_attribute obj_name="physician id" value="012112"/>
                        <recip_attribute obj_name="physician id" value="910958"/>
                        <recip_attribute obj_name="practice id" value="7B"/>
                        <recip_attribute obj_name="report id" value="All"/>
                        <recip_attribute obj_name="report id" value="FHO Medical Record"/>
                        <recip_attribute obj_name="report id" value="FHO Radiology Consultation"/>
                        <recip_address type="fax" priority="50.00" device="FHO_PROD_DV1A/Fax FHO I" address="+1 (407) 5996713"/>
                        <notification>
                              <ntfy_type>default</ntfy_type>
                        </notification>
                  </location>
                  <security>
                        <role obj_name="PIT Technical" docuvault="FHO_PROD_DV1A"/>
                  </security>
            </recipient>
            <recipient obj_name="[Infectious Disease Associates of Greater Orlando, PA]">
                  <description>Infectious Disease/Hyperbaric Medicine G-000033000

218 Strathy Ln.
Winter Park  FL 32792
Phone- 407 629 9400
Fax- 407 629 0017
OM- Cheryl

8-6-03, added Dr. Deana Pickett to site per Laurie @ lab. dge32a Deleted Dr. Gail Gerena from this practice per email from Laurie Lesher-Lockcuff . Dr. Gerena is Inactive on PS00. 10/28/03 lfw410
12/10/03- Rmvd. DLK650, FPI970, and MRR524 per OM. They are no longer with the practice./MSH
1/7/04 Added Dr. Anne Anglim per Cheryl OM (klw58d)
6/16/06 Added SST458,LLA651,MMB1A7,KML646,TLB139/NMMEF3</description>
                  <identity>
                        <e-mail>James.McClelland.md@flhosp.org</e-mail>
                        <notification>
                              <notify_language locale="1033" language="English (United States)"/>
                              <sender_notification>default</sender_notification>
                        </notification>
                        <nt_logon>
                              <user domain_name="FHD" account_name="CAP654"/>
                              <user domain_name="FHD" account_name="DBC718"/>
                              <user domain_name="FHD" account_name="DLP13C"/>
                              <user domain_name="FHD" account_name="DMR7E4"/>
                              <user domain_name="FHD" account_name="EMQ96C"/>
                              <user domain_name="FHD" account_name="KML646"/>
                              <user domain_name="FHD" account_name="LCREE4"/>
                              <user domain_name="FHD" account_name="LLA651"/>
                              <user domain_name="FHD" account_name="MMB1A7"/>
                              <user domain_name="FHD" account_name="NGTA98"/>
                              <user domain_name="FHD" account_name="SST458"/>
                              <user domain_name="FHD" account_name="TLB139"/>
                              <user domain_name="FHD" account_name="VDIEE8"/>
                        </nt_logon>
                  </identity>
                  <inbox_list>
                        <inbox obj_name="&lt;Default>">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="Inbox Type" value="Practice"/>
                              <inbox_attribute obj_name="Practice ID" value="OZ"/>
                              <inbox_attribute obj_name="Report ID" value="All"/>
                              <inbox_attribute obj_name="Report ID" value="FHO Medical Record"/>
                              <inbox_attribute obj_name="Report ID" value="FHO Radiology Consultation"/>
                        </inbox>
                        <inbox obj_name="Anne Anglim MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>true</allow_delete_by_owner>
                              <retain_for>forever</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="013725"/>
                              <inbox_attribute obj_name="report id" value="All"/>
                              <inbox_attribute obj_name="Specialty" value="ID"/>
                        </inbox>
                        <inbox obj_name="Deana Pickett ARNP">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="902047"/>
                              <inbox_attribute obj_name="report id" value="All"/>
                        </inbox>
                        <inbox obj_name="Denise Cochran ARNP">
                              <priority>50</priority>
                              <allow_delete_by_owner>true</allow_delete_by_owner>
                              <retain_for>forever</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="909722"/>
                              <inbox_attribute obj_name="report id" value="All"/>
                        </inbox>
                        <inbox obj_name="James McClelland MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="Inbox Type" value="Physician"/>
                              <inbox_attribute obj_name="Physician ID" value="008770"/>
                              <inbox_attribute obj_name="Report ID" value="All"/>
                              <inbox_attribute obj_name="Specialty" value="ID"/>
                        </inbox>
                        <inbox obj_name="Javier Tello MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="Inbox Type" value="Physician"/>
                              <inbox_attribute obj_name="Physician ID" value="012804"/>
                              <inbox_attribute obj_name="Report ID" value="All"/>
                              <inbox_attribute obj_name="Specialty" value="ID"/>
                        </inbox>
                        <inbox obj_name="Vincent Spoto MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="Inbox Type" value="Physician"/>
                              <inbox_attribute obj_name="Physician ID" value="012230"/>
                              <inbox_attribute obj_name="Report ID" value="All"/>
                              <inbox_attribute obj_name="Specialty" value="ID"/>
                        </inbox>
                  </inbox_list>
                  <security>
                        <role obj_name="PIT Technical" docuvault="FHO_PROD_DV1A"/>
                  </security>
            </recipient>
            <recipient obj_name="[Infectious Disease Care of Central Florida, Inc]">
                  <description>650 North Wymore Road Suite 102
Winter Park, FL  32789
Office: 407-644-9002  
Fax:  407-644-9004

Office Contact:  Kathy 321-277-8832

DO NOT TOUCH THIS SETUP TILL 1/31/04  (klw5
8d)

LNMC88 added 8/9/04 /SJS
KEB460

VMLD86 added 8/30/04/SJS

</description>
                  <identity>
                        <notification>
                              <notify_language locale="0" language="English (United States)"/>
                              <sender_notification>default</sender_notification>
                        </notification>
                        <nt_logon>
                              <user domain_name="FHD" account_name="KEB460"/>
                              <user domain_name="FHD" account_name="LNMC88"/>
                              <user domain_name="FHD" account_name="VMLD86"/>
                        </nt_logon>
                  </identity>
                  <inbox_list>
                        <inbox obj_name="&lt;Default>">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Practice"/>
                              <inbox_attribute obj_name="practice id" value="ZT"/>
                              <inbox_attribute obj_name="report id" value="All"/>
                              <inbox_attribute obj_name="report id" value="FHO Medical Record"/>
                              <inbox_attribute obj_name="report id" value="FHO Radiology Consultation"/>
                        </inbox>
                        <inbox obj_name="Archana Shah MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>true</allow_delete_by_owner>
                              <retain_for>forever</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="014405"/>
                              <inbox_attribute obj_name="report id" value="All"/>
                              <inbox_attribute obj_name="Specialty" value="IM"/>
                        </inbox>
                        <inbox obj_name="Phillip Sanchez MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>true</allow_delete_by_owner>
                              <retain_for>forever</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="003910"/>
                              <inbox_attribute obj_name="report id" value="All"/>
                        </inbox>
                  </inbox_list>
                  <security>
                        <user domain_name="FHD" account_name="KLW58D" permission="803F"/>
                        <role obj_name="PIT Technical" docuvault="FHO_PROD_DV1A"/>
                  </security>
            </recipient>
            <recipient obj_name="[Infectious Disease Consultants, MD, PA]">
                  <description>Infectious Disease

685 Palm Springs Dr., St. #2A
Altamonte Springs, FL 32701
Phone- 407 830 5577
Fax- 407 830 4164
Back line: 407-830-9927
Contact: Jennifer/Gail; Jeff Dinsmore- 407-647-3960
On 1/31/04  Dr. Phillip Sanchez is leaving this group and starting his own practice Infectious Disease Care of Central Florida, Inc.
(klw58d)  DO NOT TOUCH OR REMOVE
Added Vicke Murphy (VDM714) after a support call. She was trained two weeks ago and her id was not in the system. 1/23/04/SJS
Removed Dr. Phillip Sanchez 7/15/04 as requested by Q63344
9/27/04- Added new user per SKC/MSH
11/8/04- Added Dr. Victor Hsu per Dinah/MSH
3/18/05- Added Dr. Alvarando's inactive admit # per LFW/MSH
4/11/05- Added new user per Jeff/MSH
Added Dr. Christopher Cooper 9/22/05/sjs/Q94467.
Added Dr. Mark Wallace 12/16/05/sjs/Q102031
Changed DPL code back to correct KK from YD that belonged to another site. 8/7/06/sjs
1 Dr. Hamid to site/1/22/07/sjs
Rmv Drs M Wallace, V. Hsu/R132767/2/2/07/sjs
</description>
                  <identity>
                        <e-mail>Carlos.Ruiz.MD@flhosp.org</e-mail>
                        <notification>
                              <notify_language locale="1033" language="English (United States)"/>
                              <sender_notification>default</sender_notification>
                        </notification>
                        <nt_logon>
                              <user domain_name="FHD" account_name="ADUAF8"/>
                              <user domain_name="FHD" account_name="ARM539"/>
                              <user domain_name="FHD" account_name="CET81E"/>
                              <user domain_name="FHD" account_name="CMS701"/>
                              <user domain_name="FHD" account_name="CSTFAC"/>
                              <user domain_name="FHD" account_name="EZEBE4"/>
                              <user domain_name="FHD" account_name="FBE6B4"/>
                              <user domain_name="FHD" account_name="GTF45C"/>
                              <user domain_name="FHD" account_name="JJDA30"/>
                              <user domain_name="FHD" account_name="JMA3D9"/>
                              <user domain_name="FHD" account_name="KASB68"/>
                              <user domain_name="FHD" account_name="KEB460"/>
                              <user domain_name="FHD" account_name="KJS977"/>
                              <user domain_name="FHD" account_name="KRECF0"/>
                              <user domain_name="FHD" account_name="PAB7AA"/>
                              <user domain_name="FHD" account_name="SAIA46"/>
                              <user domain_name="FHD" account_name="VAG4D4"/>
                              <user domain_name="FHD" account_name="VDM714"/>
                              <user domain_name="FHD" account_name="WDSE1C"/>
                        </nt_logon>
                  </identity>
                  <inbox_list>
                        <inbox obj_name="&lt;Default>">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="Inbox Type" value="Practice"/>
                              <inbox_attribute obj_name="Practice ID" value="KK"/>
                              <inbox_attribute obj_name="Report ID" value="All"/>
                              <inbox_attribute obj_name="Report ID" value="FHO Medical Record"/>
                              <inbox_attribute obj_name="Report ID" value="FHO Radiology Consultation"/>
                        </inbox>
                        <inbox obj_name="Anibal Maldonado MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>true</allow_delete_by_owner>
                              <retain_for>forever</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="213119"/>
                              <inbox_attribute obj_name="specialty" value="ID"/>
                        </inbox>
                        <inbox obj_name="Carlos J. Ruiz MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="002220"/>
                              <inbox_attribute obj_name="Specialty" value="ID"/>
                        </inbox>
                        <inbox obj_name="Christopher  Cooper MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="014207"/>
                              <inbox_attribute obj_name="report id" value="All"/>
                              <inbox_attribute obj_name="Specialty" value="IM"/>
                        </inbox>
                        <inbox obj_name="Edwin DeJesus MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="Inbox Type" value="Physician"/>
                              <inbox_attribute obj_name="Physician ID" value="012225"/>
                              <inbox_attribute obj_name="Specialty" value="ID"/>
                        </inbox>
                        <inbox obj_name="Fernando Alvarado MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="Inbox Type" value="Physician"/>
                              <inbox_attribute obj_name="Physician ID" value="013637"/>
                              <inbox_attribute obj_name="physician id" value="905479"/>
                              <inbox_attribute obj_name="Specialty" value="ID"/>
                        </inbox>
                        <inbox obj_name="Jaime Carrizosa MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="Inbox Type" value="Physician"/>
                              <inbox_attribute obj_name="Physician ID" value="007110"/>
                              <inbox_attribute obj_name="Specialty" value="ID"/>
                        </inbox>
                        <inbox obj_name="Jason Sniffen DO">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="Inbox Type" value="Physician"/>
                              <inbox_attribute obj_name="Physician ID" value="013797"/>
                              <inbox_attribute obj_name="Specialty" value="ID"/>
                        </inbox>
                        <inbox obj_name="Naveed S. Hamid MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="212024"/>
                              <inbox_attribute obj_name="specialty" value="ID"/>
                        </inbox>
                        <inbox obj_name="Roberto Ortiz MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="912157"/>
                              <inbox_attribute obj_name="Specialty" value="ID"/>
                        </inbox>
                        <inbox obj_name="Timothy Cooper MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="Inbox Type" value="Physician"/>
                              <inbox_attribute obj_name="Physician ID" value="012795"/>
                              <inbox_attribute obj_name="Specialty" value="ID"/>
                        </inbox>
                  </inbox_list>
                  <security>
                        <role obj_name="PIT Technical" docuvault="FHO_PROD_DV1A"/>
                  </security>
            </recipient>
            <recipient obj_name="[Infectious Disease of Central Fl]">
                  <description>Infectious Disease
1720 So. Orange Ave.
Suite 500
Orlando, Florida 32806

Ph: 407-246-1946
Fax: 407-246-1411
Created 4/21/04 SJS

</description>
                  <identity>
                        <e-mail>william.robbins.md@flhosp.org</e-mail>
                        <notification>
                              <notify_language locale="1033" language="English (United States)"/>
                              <sender_notification>default</sender_notification>
                        </notification>
                        <nt_logon>
                              <user domain_name="FHD" account_name="HEZ014"/>
                              <user domain_name="FHD" account_name="MBA584"/>
                              <user domain_name="FHD" account_name="MCE650"/>
                        </nt_logon>
                  </identity>
                  <inbox_list>
                        <inbox obj_name="&lt;Default>">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="Inbox Type" value="Practice"/>
                              <inbox_attribute obj_name="Practice ID" value="0V"/>
                              <inbox_attribute obj_name="Report ID" value="All"/>
                              <inbox_attribute obj_name="Report ID" value="FHO Medical Record"/>
                              <inbox_attribute obj_name="Report ID" value="FHO Radiology Consultation"/>
                        </inbox>
                        <inbox obj_name="William J. Robbins MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="112101"/>
                              <inbox_attribute obj_name="report id" value="All"/>
                        </inbox>
                  </inbox_list>
                  <security>
                        <role obj_name="PIT Technical" docuvault="FHO_PROD_DV1A"/>
                  </security>
            </recipient>
what about this?

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   
    <xsl:template match="/">
        <html>
            <body>
                <h2>Physician's with OPID's</h2>
                <table border="1">
                    <tr bgcolor="#9acd32">
                        <th align="left">Site</th>
                        <th align="left">OPID</th>
                        <th align="left">Physician Name</th>
                        <th align="left">DPL_Code</th>
                        <th align="left">Admit #</th>
                        <th align="left">Fax #</th>
                    </tr>
                    <xsl:apply-templates select=".//recipient"/>
                </table>
            </body>
        </html>
    </xsl:template>
   
    <xsl:template match="recipient">
        <xsl:apply-templates select=".//inbox" />
    </xsl:template>
   
    <xsl:template match="inbox">
        <xsl:variable name="pos" select="position()" />
        <tr>
            <xsl:if test="position() = 1">
                <td rowspan="{count(../.././/inbox)}"><xsl:value-of select="../../@obj_name"/></td>
            </xsl:if>
            <td><xsl:value-of select="../../identity/nt_logon/user[position() = $pos]/@account_name"/></td>
            <td><xsl:value-of select="@obj_name"/></td>
            <td><xsl:value-of select="inbox_attribute[@obj_name='practice id']/@value"/></td>
            <td><xsl:value-of select="inbox_attribute[@obj_name='physician id']/@value"/></td>
            <xsl:if test="position() = 1">
                <td rowspan="{count(../.././/inbox)}"><xsl:value-of select="../../location/recip_address[@type='fax']/@address"/></td>
            </xsl:if>
        </tr>
    </xsl:template>
   
   
</xsl:stylesheet>

cheers

Geert
Interesting....the format looks better  because it's grabbing more of the nt_logon user account info but it's not grabbing all of them.  Here's a sample I looked at where it only grabbed 4 of the nt_logon user account info out of 12.  Not sure why it stopped at 4 because on others accounts it listed more than 4.  

Also, I'm noticing that its not always grabbing the practice ID, or all of the physician ID's. The reason it seems to be doing this is due to the word, "practice id" is sometimes  "Practice ID" and "physician ID" is sometimes "Physician ID".  Again, as you told me this is case sensitive and that's causing it to skip some ...not sure though about the nt_logon.


</recipient>
            <recipient obj_name="[Florida Gastroenterology, PA]">
                  <description>Gastroenterology -G-0000231175
483 N. SEMORAN BLV, STE 101  
WINTER PARK, FL 32792

Ph: (407) 895-9500
Fax (321) 274 0266
O/M: Cynthia Hernandez -updated 5/08/06 masf48
3100 Clay Street
Suite 159
Orlando, FL 32804
Removed Dr. R. Bajaj tab/ Added Drs. V. Gupta &amp; T. Vaidya

8/06 new address  483 N. SEMORAN BLVD.  WINTER PARK     32792    
ph: 407 215 6395
8-18-06 Chg Fax # from 407 896-9655 to 321 274-0266 per ARS268/ GLWE80  
2/22/07 Added MABDFE\NMMEF3
Add 1 user/7/30/07/sjs
8/13/07 Added user NRo778.//MEL727</description>
                  <identity>
                        <e-mail>Rohini.Bajaj@flhosp.org</e-mail>
                        <notification>
                              <notify_language locale="1033" language="English (United States)"/>
                              <sender_notification>default</sender_notification>
                        </notification>
                        <nt_logon>
                              <user domain_name="FHD" account_name="CHECAF"/>
                              <user domain_name="FHD" account_name="CRE710"/>
                              <user domain_name="FHD" account_name="CSM29D"/>
                              <user domain_name="FHD" account_name="DBR499"/>
                              <user domain_name="FHD" account_name="DLIDEC"/>
                              <user domain_name="FHD" account_name="KCE08F"/>
                              <user domain_name="FHD" account_name="LAL0F2"/>
                              <user domain_name="FHD" account_name="MABDFE"/>
                              <user domain_name="FHD" account_name="NRO778"/>
                              <user domain_name="FHD" account_name="PDI626"/>
                              <user domain_name="FHD" account_name="TSUF4A"/>
                              <user domain_name="FHD" account_name="YVR618"/>
                        </nt_logon>
                  </identity>
                  <inbox_list>
                        <inbox obj_name="&lt;Default>">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>90 (days)</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="Inbox Type" value="Practice"/>
                              <inbox_attribute obj_name="Practice ID" value="WU"/>
                              <inbox_attribute obj_name="Report ID" value="All"/>
                              <inbox_attribute obj_name="Report ID" value="FHO Medical Record"/>
                              <inbox_attribute obj_name="Report ID" value="FHO Radiology Consultation"/>
                        </inbox>
                        <inbox obj_name="Rohini Bajaj MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>false</allow_delete_by_owner>
                              <retain_for>forever</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="Inbox Type" value="Physician"/>
                              <inbox_attribute obj_name="Physician ID" value="012511"/>
                              <inbox_attribute obj_name="Report ID" value="All"/>
                              <inbox_attribute obj_name="Specialty" value="GE"/>
                        </inbox>
                        <inbox obj_name="Trinetra V. Vaidya MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>true</allow_delete_by_owner>
                              <retain_for>forever</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="014447"/>
                              <inbox_attribute obj_name="report id" value="All"/>
                              <inbox_attribute obj_name="Specialty" value="GE"/>
                        </inbox>
                        <inbox obj_name="Vishal Gupta MD">
                              <priority>50</priority>
                              <allow_delete_by_owner>true</allow_delete_by_owner>
                              <retain_for>forever</retain_for>
                              <max_generations>keep all</max_generations>
                              <notification>default</notification>
                              <inbox_attribute obj_name="inbox type" value="Physician"/>
                              <inbox_attribute obj_name="physician id" value="014449"/>
                              <inbox_attribute obj_name="report id" value="All"/>
                              <inbox_attribute obj_name="Specialty" value="GE"/>
                        </inbox>
                  </inbox_list>
                  <location obj_name="Office Fax">
                        <recip_attribute obj_name="Inbox Type" value="Fax"/>
                        <recip_attribute obj_name="physician id" value="012511"/>
                        <recip_attribute obj_name="physician id" value="014447"/>
                        <recip_attribute obj_name="physician id" value="014449"/>
                        <recip_attribute obj_name="physician id" value="912466"/>
                        <recip_attribute obj_name="Practice ID" value="WU"/>
                        <recip_attribute obj_name="report id" value="All"/>
                        <recip_attribute obj_name="Report ID" value="FHO Medical Record"/>
                        <recip_attribute obj_name="Report ID" value="FHO Radiology Consultation"/>
                        <recip_address type="fax" priority="50.00" device="FHO_PROD_DV1A/Fax FHO F" address="+1 (321) 2740266"/>
                        <notification>
                              <ntfy_type>default</ntfy_type>
                        </notification>
                  </location>
                  <security>
                        <role obj_name="PIT Technical" docuvault="FHO_PROD_DV1A"/>
                  </security>
            </recipient>

Here is what it output on the table:
Site                                             OPID              Physician Name       DPL_Code      Admit #              Fax #
[Florida Gastroenterology, PA]      CHECAF         <Default>                  +1 (321) 2740266
CRE710      Rohini Bajaj MD            
CSM29D      Trinetra V. Vaidya MD            014447
DBR499      Vishal Gupta MD            014449
SOLUTION
Avatar of Gertone (Geert Bormans)
Gertone (Geert Bormans)
Flag of Belgium image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
It is still not clear to me how you fit the logic of the OPID in the table
in your example there are about 20 nt_logon accounts and only 4 inboxes
I only take the first 4 logon accounts to make a nice table... but apparently that logic is wrong

how do you want to deal with 20 cells in a 4 row table?
Well, not every nt_logon needs to match with a physician.  It just needs to be known that those particular nt_logon ID's have access to this address book entry.  This address account is actually an "inbox" which looks like an email account.  The physicians names are sub-inboxes in the root account of [Florida Gastroenterology, PA].  The nt_logon ID's just means those ID's have access to view those inboxes.  So they don't have to match to an actual physician.  We just need to know that for [Florida Gastroenterology, PA] those are the nt_logon ID's that have access to view it.  Does that make sense?

For example:

Site = [Florida Gastroenterology, PA]
Physicians = Rohini Bajaj MD                  (Admit # 012511)
                      Trinetra V. Vaidya MD      (Admit # 014447)
                      Vishal Gupta MD              (Admit # 014449)
Practice ID = WU
Fax #         = +1 (321) 2740266
nt_logon    = CRE710
                     CSM29D
                     DBR499
                     DLIDEC
                     KCE08F
                     LAL0F2
                    MABDFE
                    NRO778
                    PDI626
                   TSUF4A
                   YVR618

For the nt_logon, they may very well be the ID for me, an office manager, a nurse, or anyone else who needs access to those inboxes.  They do not need to be associated to the physician sub-inbox found in the inbox_list.  Make sense?
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Looks beautiful!!!!!!!!  this is perfect!!!!!!!!!  You are indeed a Genius :-)  Thanks Gertone!!!!!!