所以我有一个如下的xml文件:
<?xml version="1.0"?>
<class>
<students>
<name origin="English" firstname="Jeff" lastname="Richards"/>
<name origin="French" firstname="Martel" lastname="Francois"/>
</students>
<teachers>
<name origin="Spanish" firstname="Enrique" lastname="Rosa"/>
</teachers>
</class>
并有另一个xml文件,如下所示:
<?xml version="1.0"?>
<name origin="English" firstname="Richard" lastname="Priestly"/>
<name origin="Russian" firstname="Alexey" lastname="Romanov"/>
使用xslt,如何将第二个文件中的两个元素添加到第一个文件中的student元素中?换句话说,如何创建如下所示的文件:
<?xml version="1.0"?>
<class>
<students>
<name origin="English" firstname="Jeff" lastname="Richards"/>
<name origin="French" firstname="Martel" lastname="Francois"/>
<name origin="English" firstname="Richard" lastname="Priestly"/>
<name origin="Russian" firstname="Alexey" lastname="Romanov"/>
</students>
<teachers>
<name origin="Spanish" firstname="Enrique" lastname="Rosa"/>
</teachers>
</class>
如果使用xslt是不可能的,那么使用XPath是可行的吗?
非常感谢!
这里有一种方法,假设您通过添加“students”根节点并将其命名为“students”,使第二个文件格式良好。xml“:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output indent="yes" method="xml"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="students">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
<xsl:for-each select="document('students.xml')/students/name">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:for-each>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
问题内容: 例如 根= NodeToInsert可能是 输出应为: 问题答案: 如果事实证明我只是为您做功课,我会感到非常恼火。 结果将是:
我是XSLT新手。我想根据其他子节点的条件更改XML中的根节点。但子节点始终保持不变。例如,我有以下XML: 我喜欢将XML更改为: 这意味着依赖于<代码> 我不想在每个<代码>
我正在尝试处理这个XML文件,我想根据最新的节点值删除所有匹配的节点。在以下示例中,最新节点值为“${DELETE}”,最新节点值将始终为“${DELETE}”,并且该节点将始终位于XML文件的底部。 示例: 预期产出为:
您能帮助如何用子节点分割成半节点吗? 输入: 输出: 不幸的是,我对xslt没有经验,也没有找到这样的例子。 更新后,我尝试了下面建议的方法之一,并有这个https://xsltfiddle.liberty-development.net/jyH9rNq/3节点不复制 xslt: 输出:
您能帮助我使用xslt实现以下预期输出吗。 输入 预期输出
我想使用PHP将大的xml值插入到sql中。 我可以用PHP做这个工作吗?我该怎么做呢? 谢谢