Html 用于删除返回的XML中不需要的元素的XLST查询

Html 用于删除返回的XML中不需要的元素的XLST查询,html,xml,xslt,scripting,Html,Xml,Xslt,Scripting,我有一个修改后的XSLT查询,它返回我想要的所有内容,但有一个额外的元素,我不想返回。我如何修改它,使其摆脱80df0b42de8f31ac4cb7a30d325ff0c1行。xml是: <?xml version="1.0" encoding="UTF-8"?> <CMDBTopology> <Objects> <CMDBSet> <name>80df0b42de8f31ac4cb7a30d325ff0c1</name&

我有一个修改后的XSLT查询,它返回我想要的所有内容,但有一个额外的元素,我不想返回。我如何修改它,使其摆脱
80df0b42de8f31ac4cb7a30d325ff0c1
行。xml是:

    <?xml version="1.0" encoding="UTF-8"?>
<CMDBTopology>
<Objects>
<CMDBSet>
<name>80df0b42de8f31ac4cb7a30d325ff0c1</name>
<CMDBObject>
<identifier type="nt">80df0b42de8f31ac4cb7a30d325ff0c1</identifier>
<Properties>
<root_class type="STRING">nt</root_class>
<host_servertype type="STRING"></host_servertype>
<host_osrelease type="STRING"></host_osrelease>
<display_label type="STRING">pharsm-s3004</display_label>
<host_osinstalltype type="STRING"></host_osinstalltype>
</Properties>
</CMDBObject>

80df0b42de8f31ac4cb7a30d325ff0c1
80df0b42de8f31ac4cb7a30d325ff0c1
新界
Pharmasm-s3004
我现在的xlst查询是`

        <html>

          <head>

                    <title> title </title>

          </head>

          <body>

                    <xsl:apply-templates />

          </body>

        </html>


标题







`很难给出准确的答案,因为不知道您希望输出是什么样子,但您的主要问题是XSLT中有一个与
CMDBRelation
匹配的模板,就像这样

<xsl:template match="CMDBRelation" >
对于每个语句,在
xsl:for中,您似乎还引用了
to
From
元素,与前面一样,这些元素在XML中不存在

<xsl:for-each select="To/CMDBObject/Properties">

您发布的XSLT与XML片段不兼容。它不会输出任何内容(它所选择的元素不存在于XML文件中或调用它们的上下文中)。编辑问题并包含您正在使用的实际文件。我已对其进行编辑以反映xml文件,但如果我将其更改为正确的“值选择”它不会运行,它会给出一个空结果,但是如果我像以前一样运行它,它会给出正确的数据,但是使用了我想要删除的额外元素……XSLT中有一个匹配
CMDBRelation
的模板,但是XML中不存在这样的元素,因此该模板将永远不会被使用。如果您还显示了当前获得的输出以及实际需要的输出,那么它实际上可能会更有帮助。谢谢。我尝试将CMDBRelation更改为CMDBObject,它给出了相同的输出…我将编辑问题以添加我想要的输出和我得到的内容..它完全省略了表格格式…非常感谢它去掉了标识符元素,现在我只需要稍微旋转一下它,因为它现在只显示根类和显示标签。但是,这给了我一个很好的起点。还有一个问题,我现在只想为每个选定语句的值显示一次标题。如何实现这一点。请不要在回答和接受问题后编辑这些问题,因为这会使其他人很难理解正在发生的事情。如果你把你的问题编辑成以前的问题,然后问一个全新的问题,那会更好。谢谢。好的,我会把它编辑成原来的问题,没有考虑到其他人将来可能会有类似的问题
                                <td> <xsl:value-of select="resolver_group" /> </td>

                                <td> <xsl:value-of select="supported_by" /> </td>

                                <td> <xsl:value-of select="environment" /> </td>

                                <td> <xsl:value-of select="site_code" /> </td>

                                <td> <xsl:value-of select="sla_classification" /> </td>

                                <td> <xsl:value-of select="datacenter" /> </td>
                                </tr>

        </table>
<xsl:template match="CMDBRelation" >
<xsl:template match="CMDBRelation" >
<xsl:for-each select="To/CMDBObject/Properties">
<xsl:for-each select="CMDBObject/Properties">
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="/">
      <html>
         <head>
            <title> title </title>
         </head>
         <body>
            <xsl:apply-templates/>
         </body>
      </html>
   </xsl:template>

   <xsl:template match="CMDBSet">
      <table width="1" border="1">
         <xsl:for-each select="CMDBObject/Properties">
            <tr>
               <td><xsl:value-of select="display_label"/></td>
               <td><xsl:value-of select="root_class"/></td>
               <td><xsl:value-of select="host_servertype"/></td>
               <td><xsl:value-of select="host_osrelease"/></td>
               <td><xsl:value-of select="host_osinstall"/></td>
            </tr>
         </xsl:for-each>
      </table>
   </xsl:template>
</xsl:stylesheet>