Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 仅从一个“XSLT翻译”;“子类”;?_Xml_Xslt - Fatal编程技术网

Xml 仅从一个“XSLT翻译”;“子类”;?

Xml 仅从一个“XSLT翻译”;“子类”;?,xml,xslt,Xml,Xslt,我试图获取一个大的XML文件,并从中仅提取几个标记元素。我认为我使用模板匹配标记进入了我想要的子类(subclass不是正确的词,但我是从RDF/OWL的角度来看的),但它似乎没有过滤掉不在该子类中的东西。代码如下: XML: 13 四分卫 马里诺 我不要这个 我也不想要这个 XSL: 编号: 标题: 姓名: 您没有匹配的模板/,因此XSLT的启动。这些将有效地匹配节点,然后为子节点选择模板。因此,最终您的垃圾节点将被选中,然后内置模板将输出文本节点并将其归档 有许多方法可以解决您的特定问

我试图获取一个大的XML文件,并从中仅提取几个标记元素。我认为我使用模板匹配标记进入了我想要的子类(subclass不是正确的词,但我是从RDF/OWL的角度来看的),但它似乎没有过滤掉不在该子类中的东西。代码如下:

XML:


13
四分卫
马里诺
我不要这个
我也不想要这个
XSL:


编号:
标题:
姓名:

您没有匹配的模板
/
,因此XSLT的启动。这些将有效地匹配节点,然后为子节点选择模板。因此,最终您的
垃圾
节点将被选中,然后内置模板将输出文本节点并将其归档

有许多方法可以解决您的特定问题。您可以添加一个模板来忽略
垃圾
节点

 <xsl:template match="junk" />

您没有与
/
匹配的模板,因此XSLT起作用了。这些将有效地匹配节点,然后为子节点选择模板。因此,最终您的
垃圾
节点将被选中,然后内置模板将输出文本节点并将其归档

有许多方法可以解决您的特定问题。您可以添加一个模板来忽略
垃圾
节点

 <xsl:template match="junk" />

对于OP的情况,我倾向于选择第三个选项,即从大型输入文档中选择少量项。我尝试了第三个选项(保留名称空间并使用代码),但无法获得“”以外的任何内容。有什么我遗漏的吗?只要是备份,我就可以发布一个链接来展示它的实际效果。。。。在这里,我可以动态地试用xsl(因为它比命令行快),并在上看到它的实际应用。如果可用,xsltransform.net是一个更好的尝试XSLT的地方。对于OP的情况,我倾向于选择第三个选项,即从大型输入文档中选择少量项。我尝试了第三个选项(保留名称空间并使用代码),但无法获得“”以外的任何内容。有什么我遗漏的吗?只要是备份,我就可以发布一个链接来展示它的实际效果。。。。在这里,我可以动态地试用xsl(因为它比命令行快),并在上看到它的实际应用。如果可用,xsltransform.net是一个更好的尝试XSLT的地方。
 <xsl:template match="junk" />
<xsl:template match="text()" />
<xsl:template match="/">
    <xsl:apply-templates select="ns4:getCollectiveTaskResponse/ns4:collectiveTask/ns4:generalInformation" />
</xsl:template>

<xsl:template match="ns4:generalInformation">
Number:<xsl:value-of select="number"/>
Title:<xsl:value-of select="title"/>
Name:<xsl:value-of select="name"/>
</xsl:template>