如何从以前的节点中提取数据

问题描述:

我遇到了一个挑战,我努力寻找正确的方法。所需的信息位于两个不同的节点中,但属于设备的相同信息。如何从以前的节点中提取数据

后来的节点包含前一节点按照画面的目标信息:XML nodes

电话装置具有其中在所述设备的信息被存储,IP电话和工作站两个节点。在工作站下,主要信息与一个将其链接到IP电话部分的密钥一起存储。

我有以下代码:

<?xml version='1.0'?> 
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
     <xsl:template match="/"> 
     <html> 
      <body> 
     <table border="1"> 
      <tr> 
      <td><strong>Name</strong></td> 
      <td><strong>Software Version</strong></td> 
     <td><strong>Status</strong></td> 
      </tr> 
      <xsl:for-each select="ENTRY/ENTRY/ENTRY/ENTRY/ENTRY"> 
     <xsl:if test="@CLASS='Workstation'"> 
      <tr> 
     <td><xsl:value-of select="@NAME"/></td> 
     <xsl:for-each select="ATTRIBUTE"> 
      <xsl:if test="@NAME='Managed IP Phone'"> 
      <xsl:call-template name="Phone_Data"> 
       <xsl:with-param name="IPPhone" select="VALUE"/> 
      </xsl:call-template> 
      </xsl:if> 
     </xsl:for-each> 
     <td>.</td> 
      </tr> 
     </xsl:if> 
     </xsl:for-each> 
    </table> 
     </body> 
    </html> 
</xsl:template> 

    <!-- Additional templates to pull 2nd phone node data. --> 
    <xsl:template name="Phone_Data"> 
    <xsl:param name="IPPhone"/> 
    <td> <xsl:value-of select="$IPPhone"/> </td> <!-- --> 
<xsl:for-each select="../ENTRY"> 
    <xsl:if test="@NAME='IP Phones'"> 
    <xsl:for-each select="ENTRY"> 
     <xsl:if test="@NAME=$IPPhone"> 
     <xsl:for-each select="ATTRIBUTE"> 
     <!-- This is an attribute under the IP Phones - GBADM104_ENTRY --> 
     <xsl:if test="@NAME='Software Version'"> 
     <td><xsl:value-of select="VALUE"/></td> 
     </xsl:if> 
    </xsl:for-each> 
     </xsl:if> 
    </xsl:for-each> 
     </xsl:if> 
</xsl:for-each> 
    </xsl:template> 

    </xsl:stylesheet> 

从GBADM104_ENTRY即将下工作站节点,它不提供我的信息我的预期下IP从GBADM104_ENTRY得到在截图中的电话节点。

由于我是新手,我明显在Phone_Data模板中犯了一个错误,以使用我需要的数据来定位节点。我不知道是否可以给我建议如何以正确的方式做到这一点?

<?xml version="1.0" encoding="utf-8"?> 
    <!-- Generated by DSEdit --> 
    <ENTRY NAME="CustomerSite" CLASS="Site"> 
    <ENTRY NAME="Production" CLASS="Configuration Set"> 
     <ENTRY NAME="REG6699CIC01" CLASS="Server"> 
     <ENTRY NAME="IP Phones" CLASS="IP Phones"> 
      <ENTRY NAME="51948094-c6e6-4fb9-bb76-ba1986c51429" CLASS="IP Phone"> 
      <ATTRIBUTE NAME="VAD"> 
       <VALUE>No</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Software Version"> 
       <VALUE>3.2.7.0198</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Feature Call Park"> 
       <VALUE>Yes</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Status"> 
       <VALUE>Current</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Station Type"> 
       <VALUE>Workstation</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="ReloadedLast"> 
       <VALUE>20140825143741Z</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="MAC Address"> 
       <VALUE>0004F24F4012</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Name"> 
       <VALUE>GBADM103</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Date Last Modified"> 
       <VALUE>1406660976</VALUE> 
      </ATTRIBUTE> 
      </ENTRY> 
      <ENTRY NAME="51dbb1fe-9957-420a-bfc3-3f4d9bc1b2fc" CLASS="IP Phone"> 
      <ATTRIBUTE NAME="Software Version"> 
       <VALUE>3.2.7.0198</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Status"> 
       <VALUE>Current</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Station Type"> 
       <VALUE>Workstation</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="ReloadedLast"> 
       <VALUE>20140912074858Z</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="MAC Address"> 
       <VALUE>0004F2B37167</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Name"> 
       <VALUE>GBADM104</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Date Last Modified"> 
       <VALUE>1410881183</VALUE> 
      </ATTRIBUTE> 
      </ENTRY> 
      <ENTRY NAME="51eace77-7f6d-467a-bbac-b27329229c53" CLASS="IP Phone"> 
      <ATTRIBUTE NAME="VAD"> 
       <VALUE>No</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Software Version"> 
       <VALUE>3.2.7.0198</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Status"> 
       <VALUE>Current</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Station Type"> 
       <VALUE>Workstation</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="ReloadedLast"> 
       <VALUE>20140814104810Z</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="MAC Address"> 
       <VALUE>0004F24F3E3B</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Persistent"> 
       <VALUE>Yes</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="IP Address"> 
       <VALUE>10.254.250.61</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Name"> 
       <VALUE>GBADS201</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Date Last Modified"> 
       <VALUE>1406899229</VALUE> 
      </ATTRIBUTE> 
    </ENTRY> 
     <ATTRIBUTE NAME="Security"> 
     <VALUE>Minimal</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Call Ringback Timeout"> 
     <VALUE>0</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="VQM Collector Periodic Trigger"> 
     <VALUE>0</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Codec Pref"> 
     <VALUE>0|G.711 mu-law|</VALUE> 
     <VALUE>1|G.711 a-law|</VALUE> 
     <VALUE>2|G.729AB|</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Active"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Use 486 For Reject"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Emergency Customer Name"> 
     <VALUE>Regus</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Call Waiting Tone"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Connection Type"> 
     <VALUE>SIPAddress</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Sync Forward To IC Status"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="IsSupportedRingSets"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="SIP ID Address SYNC"> 
     <VALUE>Sync Dynamic</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="VQM Collector Session"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="SIP Receive Port"> 
     <VALUE>5060</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Audio Path"> 
     <VALUE>Always In</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="VAD"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Proxy Group"> 
     <VALUE>3b6b817b-73e5-4db5-b6d5-57eb0f9b26ff</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Polycom Override Date Date Top"> 
     <VALUE>D</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Software Version"> 
     <VALUE>3.2.7.0198</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Emergency Location Description"> 
     <VALUE>15305 Dallas Parkway Suite 300, Addison, TX, 75001</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Polycom Headset Microphone Gain"> 
     <VALUE>21</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Feature Call Park"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Region Location"> 
     <VALUE>North America</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Status"> 
     <VALUE>Current</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Polycom Override Date Format"> 
     <VALUE>D</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Emergency Numbers"> 
     <VALUE>911</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Feature URL Dialing"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="DTMF Off Time"> 
     <VALUE>80</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Station Type"> 
     <VALUE>Workstation</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="VQM Collector Periodic"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="One Touch Voicemail"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Ring Always"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Regional Tone Set"> 
     <VALUE>Language_Default</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="VQM RTCP-XR"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="ExpansionModules"> 
     <VALUE>0</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Polycom Call Waiting"> 
     <VALUE>beep</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Enable Handsfree"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Polycom NumberFirstCID"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Interface Language"> 
     <VALUE>English_United_States</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Headset Echo-Noise Suppression"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Feature Call List"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Polycom Override Date Long Format"> 
     <VALUE>D</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="SIP Session Timeout"> 
     <VALUE>60</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="ReloadedLast"> 
     <VALUE>20140905170113Z</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Phone Manufacturer"> 
     <VALUE>Polycom</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Disable Delayed Media"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Station Appearances"> 
     <VALUE>0|Private|USISM010|Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Inbound SIP Security Challenge"> 
     <VALUE>none</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Call per Station"> 
     <VALUE>1</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Bus Gain"> 
     <VALUE>0</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="RTP QOS Byte"> 
     <VALUE>B8</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Call Dialtone Timeout"> 
     <VALUE>15</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Feature Call List Placed"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Password"> 
     <VALUE>F08470F66758CE835CA9DD495F57E5B433F03937D78CFA01CAC315492D7F167C</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Location NTP Server Overrides DHCP"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Electronic Hookswitch Mode"> 
     <VALUE>0</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Authentication"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Echo Cancellation"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Phone Limits Calls Per Line Key"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Feature Presence"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="TimeZone"> 
     <VALUE>CST</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Phone Model"> 
     <VALUE>IP331</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Persist Handset Volume"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="SIP Register Interval"> 
     <VALUE>86400</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="MWI Message Light"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Audio Protocol"> 
     <VALUE>RTP</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="VQM Collector Period"> 
     <VALUE>20</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Polycom Override 24 Hour Clock"> 
     <VALUE>D</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Polycom Headset Sidetone Gain"> 
     <VALUE>-3</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Use SIP Session Timer"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Media Port Start Range"> 
     <VALUE>2222</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Dialplan Digitmap Timeout"> 
     <VALUE>3|1|3|3</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Call Offering Timeout"> 
     <VALUE>0</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="DefaultLabelType"> 
     <VALUE>Station</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Feature Group Call Pickup"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Syslog Transport"> 
     <VALUE>1</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="MAC Address"> 
     <VALUE>0004F2A72B5F</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Location Description"> 
     <VALUE>Colonnade</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Sync DND To IC Status"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Polycom Headset Speaker Gain"> 
     <VALUE>4</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Persistent"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Disable App Logs When Using Syslog"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Location Time Zone Overrides DHCP"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="User Name"> 
     <VALUE>38bc4dfa7e384f29bb7e62fc24dac94d</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="IP Address"> 
     <VALUE>10.175.250.106</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Terminate Call Analysis On Connect"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Disconnect on Broken RTP"> 
     <VALUE>0</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Syslog Render Level"> 
     <VALUE>0</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Headset Mode"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="DTMF On Time"> 
     <VALUE>80</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="DTMF Type"> 
     <VALUE>RFC2833</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Persist Headset Volume"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Feature Call List Received"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="SIP QOS Byte"> 
     <VALUE>Not Set</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Dial On Offhook"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Use Proxy"> 
     <VALUE>Not Set</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Network Gain"> 
     <VALUE>0</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Disallow Media Server Passthru"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Feature Directory"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="External Devices Determine Codecs"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Connection Call Warm Down Time"> 
     <VALUE>5</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Feature Messaging"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="DTMF Payload"> 
     <VALUE>101</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Handset Echo-Noise Suppression"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Disable Delayed Media reINVITE"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Name"> 
     <VALUE>USISM010</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Persist Handsfree Volume"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="IP3X0 Line 2 Key Function"> 
     <VALUE>Line2</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Feature Call List Missed"> 
     <VALUE>No</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Emergency Outbound ANI"> 
     <VALUE>19727152000</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Dialplan Digitmap"> 
     <VALUE>x.T|*T|*905|*90[1-4]x.T</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Allow SIP Registration"> 
     <VALUE>Yes</VALUE> 
     </ATTRIBUTE> 
     <ATTRIBUTE NAME="Date Last Modified"> 
     <VALUE>1372825753</VALUE> 
     </ATTRIBUTE> 
    </ENTRY> 
     </ENTRY> 
     <ENTRY NAME="Workstations" CLASS="Workstations"> 
      <ENTRY NAME="GBADM103" CLASS="Workstation"> 
      <ATTRIBUTE NAME="Security"> 
       <VALUE>Minimal</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Active"> 
       <VALUE>Yes</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Counted Licenses"> 
       <VALUE>I3_LICENSE_BASIC_STATION</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Connection Type"> 
       <VALUE>SIPAddress</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="SIP ID Address"> 
       <VALUE>GBADM103</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Station Type"> 
       <VALUE>Workstation</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Managed Label"> 
       <VALUE>GBADM103</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Line"> 
       <VALUE>sip:[email protected]:5060</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Licenses Enabled"> 
       <VALUE>Yes</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="MAC Address"> 
     <VALUE>0004F2B37157</VALUE> 
     </ATTRIBUTE> 
      <ATTRIBUTE NAME="Managed IP Phone"> 
       <VALUE>51948094-c6e6-4fb9-bb76-ba1986c51429</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Date Last Modified"> 
     <VALUE>1410882147</VALUE> 
     </ATTRIBUTE> 
      </ENTRY> 
      <ENTRY NAME="GBADM104" CLASS="Workstation"> 
      <ATTRIBUTE NAME="Counted Licenses"> 
       <VALUE>I3_LICENSE_BASIC_STATION</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="SIP ID Address"> 
       <VALUE>GBADM104</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Managed Label"> 
       <VALUE>GBADM104</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Extension"> 
       <VALUE>903104</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Line"> 
       <VALUE>sip:[email protected]:5060</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="MAC Address"> 
       <VALUE>0004F2B37167</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Persistent"> 
       <VALUE>Yes</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Managed IP Phone"> 
       <VALUE>51dbb1fe-9957-420a-bfc3-3f4d9bc1b2fc</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Date Last Modified"> 
       <VALUE>1410881183</VALUE> 
      </ATTRIBUTE> 
      </ENTRY> 
      <ENTRY NAME="GBADS201" CLASS="Workstation"> 
      <ATTRIBUTE NAME="Counted Licenses"> 
       <VALUE>I3_LICENSE_BASIC_STATION</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Connection Type"> 
       <VALUE>SIPAddress</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="SIP ID Address"> 
       <VALUE>GBADS201</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Station Type"> 
       <VALUE>Workstation</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Managed Label"> 
       <VALUE>GBADS201</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="MAC Address"> 
       <VALUE>UK1058597LT.uk-eire.regus.local</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Managed IP Phone"> 
       <VALUE>51eace77-7f6d-467a-bbac-b27329229c53</VALUE> 
      </ATTRIBUTE> 
      <ATTRIBUTE NAME="Date Last Modified"> 
       <VALUE>1372819315</VALUE> 
      </ATTRIBUTE> 
      </ENTRY> 
     </ENTRY> 
     </ENTRY> 
    </ENTRY> 
    </ENTRY> 
+0

输入图片很漂亮,但输入XML会更有用。 – kjhughes 2014-10-01 20:38:49

+0

截图中的XML可以在这里找到:http://tinyurl.com/lnstls4 – NiteOwls 2014-10-02 00:08:15

+0

你应该通过[**编辑你的问题**](http://meta.stackexchange。 COM /问题/ 21788 /如何-做编辑工作)。 – kjhughes 2014-10-02 00:16:24

我在这里大多猜测。以下样式表:

XSLT 1.0

<?xml version='1.0'?> 
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > 
<xsl:output method="xml" omit-xml-declaration="yes" version="1.0" encoding="utf-8" indent="yes"/> 

<xsl:key name="entry-by-name" match="ENTRY" use="@NAME" /> 

<xsl:template match="/"> 
    <html> 
     <body> 
      <table border="1"> 
       <tr> 
        <th>Name</th> 
        <th>Software Version</th> 
        <th>Status</th> 
       </tr> 
       <xsl:for-each select="ENTRY/ENTRY/ENTRY/ENTRY[@CLASS='Workstation']"> 
        <tr> 
         <td> 
          <xsl:value-of select="@NAME"/> 
         </td> 
         <td> 
          <xsl:value-of select="key('entry-by-name', ATTRIBUTE[@NAME='Managed IP Phone']/VALUE)/ATTRIBUTE[@NAME='Software Version']/VALUE"/> 
         </td> 
         <td>.</td> 
        </tr> 
       </xsl:for-each> 
      </table> 
     </body> 
    </html> 
</xsl:template> 

</xsl:stylesheet> 

施加到您的示例性输入(!为良好性校正的)将产生以下结果

<html> 
    <body> 
     <table border="1"> 
     <tr> 
      <th>Name</th> 
      <th>Software Version</th> 
      <th>Status</th> 
     </tr> 
     <tr> 
      <td>GBADM103</td> 
      <td>3.2.7.0198</td> 
      <td>.</td> 
     </tr> 
     <tr> 
      <td>GBADM104</td> 
      <td>3.2.7.0198</td> 
      <td>.</td> 
     </tr> 
     <tr> 
      <td>GBADS201</td> 
      <td>3.2.7.0198</td> 
      <td>.</td> 
     </tr> 
     </table> 
    </body> 
</html> 

呈现为:

enter image description here

注意使用谓词选择感兴趣的节点,并利用关键从XML输入的另一个分支查找数据。

+0

是的,(第一个)错误是OP在'xsl:for-each/@ select'中有太多'ENTRY'步骤:5他应该有4个。改变这个会给你制作的表格(但是你的修复包含了额外的风格改进)。当你发布你的答案时,我试图确定OP打算如何处理'.'状态列;我认为这对于OP来说是充足的,尤其是考虑到他的问题中缺乏预期的输出结果。 – kjhughes 2014-10-02 17:24:58

+0

非常感谢您的回复。请不要在Visual Studio或IE浏览器中运行原始代码不会返回标签名称,软件版本和状态以外的任何数据。为for-each select语句添加另一个ENTRY /将返回所需的数据。 – NiteOwls 2014-10-03 10:01:28

+0

@NiteOwls正如我在我的回复中提到的那样,您在这里发布的输入是**而不是格式良好的。它最后包含一个额外的'',这几乎肯定是为什么这不会在您的真实投入上运行的原因。 - 除此之外,您的问题是否得到解答? – 2014-10-03 13:58:34