Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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_Match_Contains_Exact Match - Fatal编程技术网

Xml 不在运动列表中的所有学生的xslt输出

Xml 不在运动列表中的所有学生的xslt输出,xml,xslt,match,contains,exact-match,Xml,Xslt,Match,Contains,Exact Match,这是我的档案: example.xml <?xml version="1.0" encoding="UTF-8"?> <bsp> <numbers> <string>one</string> <string>two</string> <string>three</string> <string>one</s

这是我的档案:

example.xml

 <?xml version="1.0" encoding="UTF-8"?>
    <bsp>
<numbers>
       <string>one</string>
       <string>two</string>
       <string>three</string>
       <string>one</string>
       <string>two</string>
       <string>four</string>
       <string>fife</string>
    </numbers>
</bsp>
    <?xml version="1.0" encoding="UTF-8"?>
    <bsp>
<first>
    <team>
       <member>one</member>
       <member>three</member>
    </team>
    </first>
    <second>
    <mems>
       <member>four</member>
       <member>five</member>    
    </mems>
    </second>
</bsp>

一
二
三
一
二
四
法夫
complete.xml

 <?xml version="1.0" encoding="UTF-8"?>
    <bsp>
<numbers>
       <string>one</string>
       <string>two</string>
       <string>three</string>
       <string>one</string>
       <string>two</string>
       <string>four</string>
       <string>fife</string>
    </numbers>
</bsp>
    <?xml version="1.0" encoding="UTF-8"?>
    <bsp>
<first>
    <team>
       <member>one</member>
       <member>three</member>
    </team>
    </first>
    <second>
    <mems>
       <member>four</member>
       <member>five</member>    
    </mems>
    </second>
</bsp>

一
三
四
5
输出

      <string>two</pupil>
      <string>two</pupil>
      <string>fife</string>
所有未完成的(成员和*stringÜ值的精确匹配)。如何在XSLT2.0中使用一个大文件来实现这一点

首先,我们需要访问这些文件

预期产出

      <string>two</pupil>
      <string>two</pupil>
      <string>fife</string>
2
二
法夫
建议采用哪些方法来实现这一点? 编辑
现在的示例更抽象了…

如果您正在处理studiors.xml,那么以下应该可以

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">

    <xsl:output method="xml"/>

    <xsl:template match="/">
        <xsl:for-each select="school">
            <!-- to insert header for the school -->
            <xsl:for-each select="class">
                <!-- to insert header for the class -->
                <xsl:for-each select="pupil">
                    <xsl:if test="not(document('sports.xml')//member = .)">
                        <xsl:copy-of select="."/>
                    </xsl:if>
                </xsl:for-each>
            </xsl:for-each>
        </xsl:for-each>
    </xsl:template>

</xsl:stylesheet>

其中:

  • 不(
    )-只获取不匹配的对象
  • 文档('sports.xml')
    来自此文件
  • //成员
    中的任何深度
  • =)
    谁与我们正在处理的学生匹配

学生是否在数据中按姓名识别?如果是这样,解决方案将受到潜在命名空间冲突的限制。例如,两个学生都叫“Bob Smith”。嗯,可能两个文件中都有Bob Smith好几次。我只是想知道,“examples”的一个实例是否不是“complete.xml”的一部分。我现在更抽象地重写了代码。我已经编辑了我的文本,但你的代码仍然有效。我现在可以根据我的需要调整它了。非常感谢。