gpt4 book ai didi

xml - 使用 xslt 复制包含特定子元素的父元素

转载 作者:数据小太阳 更新时间:2023-10-29 02:10:06 25 4
gpt4 key购买 nike

我有一个简单的 xml:

<custom-objects>
<custom-object id="1">
<object-attribute attribute-id="address1">Warndtstr. 33</object-attribute>
<object-attribute attribute-id="branch">01</object-attribute>
<object-attribute attribute-id="catalogid">7991</object-attribute>
<object-attribute attribute-id="exportdate">2015-09-19</object-attribute>
</custom-object>
<custom-object>
...
</custom-object>
</custom-objects>

我试图简单地复制每个 <custom-object>包含 child 的元素 @attribute-id"exportdate"并具有特定的文本值。

这是我的 xslt:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>

<xsl:template match="custom-object[object-attribute[@attribute-id='exportdate']='2015-09-19']"/>
</xsl:stylesheet>

当用作 xpath 时匹配有效。 xslt 返回空结果。

  • 为什么在这种情况下不起作用?
  • 我的错误在哪里?

最佳答案

"I'm trying to simply copy every element which contains a child where @attribute-id is "exportdate" and has a specific textvalue."

应该用于删除元素的空模板。因此,目前,您的 XSL 应该删除“exportdate”等于“2015-09-19”的 custom-object,并复制其他元素。如果您想要相反的结果,请尝试使用具有相反含义的 XPath,例如:

<xsl:template 
match="custom-object[not(object-attribute[@attribute-id='exportdate']='2015-09-19')]"/>

关于xml - 使用 xslt 复制包含特定子元素的父元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37132078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com