- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有 XML 文件,其中包含记录集,其中特定数量有时等于 0。现在我必须摆脱那些记录集。我做了以下事情。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- delete 0-quantity records -->
<xsl:template match="/ExportData/DataSet/Tables/Table/Rows/R[productQuantityinttrue='0']"/>
</xsl:stylesheet>
它基本上是有效的:它复制除 productQuantityinttrue=0 之外的所有内容。但有时会删除不应该删除的记录集。现在我的问题是,进行像这样的谈判是否会更好
<xsl:template match="/ExportData/DataSet/Tables/Table/Rows/R[not(productQuantityinttrue='0')]"
然后当然我必须复制那些最后一个陈述为真的那些。有没有人有过这方面的经验?我没有发布 XML,因为它基本上是关于“否定或不否定”。
<?xml version="1.0" encoding="UTF-8"?>
<ExportData>
<TransportHeader>
<Timestamp>2011-07-28 14:16:49</Timestamp>
<From>
<Name>MFES DynamicExport Plugin</Name>
<Version>1.1.6.95</Version>
</From>
<MessageId>a46d4d6d-667e-4e74-b3c5-a6e9ecaeacb1</MessageId>
</TransportHeader>
<ExportConfig>
<DateTimeFormat>yyyy-MM-dd HH:mm:ss</DateTimeFormat>
<DecimalSymbol>.</DecimalSymbol>
</ExportConfig>
<DataSet>LSA_SALES_EXPORT <Tables>
<Table>MI_Sales <RH>
<C>companyCodestringtrue</C>
<C>storeNumstring</C>
<C>transactionDatedateTime</C>
<C>transactionQualifierIDint</C>
<C>transactionQualifierstring</C>
<C>costCenterNumberstringtrue</C>
<C>revenueCenterPOSReflongtrue</C>
<C>menuItemNumberlong</C>
<C>menuItemNameOnestring</C>
<C>menuItemNameTwostringtrue</C>
<C>crossReferenceOnestringtrue</C>
<C>crossReferenceTwostringtrue</C>
<C>consumerUnitDescriptionstringtrue</C>
<C>transactionValueInclVATdecimaltrue</C>
<C>transactionValueExclVATdecimaltrue</C>
<C>productQuantityinttrue</C>
<C>productValueInclVATdecimaltrue</C>
<C>productValueExclVATdecimaltrue</C>
<C>discountType01AmountInclVATdecimaltrue</C>
<C>discountType02AmountInclVATdecimaltrue</C>
<C>discountType03AmountInclVATdecimaltrue</C>
<C>discountType04AmountInclVATdecimaltrue</C>
<C>discountType05AmountInclVATdecimaltrue</C>
<C>discountType06AmountInclVATdecimaltrue</C>
<C>discountType07AmountInclVATdecimaltrue</C>
<C>discountType08AmountInclVATdecimaltrue</C>
<C>discountType09AmountInclVATdecimaltrue</C>
<C>discountType10AmountInclVATdecimaltrue</C>
<C>discountType01AmountExclVATdecimaltrue</C>
<C>discountType02AmountExclVATdecimaltrue</C>
<C>discountType03AmountExclVATdecimaltrue</C>
<C>discountType04AmountExclVATdecimaltrue</C>
<C>discountType05AmountExclVATdecimaltrue</C>
<C>discountType06AmountExclVATdecimaltrue</C>
<C>discountType07AmountExclVATdecimaltrue</C>
<C>discountType08AmountExclVATdecimaltrue</C>
<C>discountType09AmountExclVATdecimaltrue</C>
<C>discountType10AmountExclVATdecimaltrue</C>
<C>totalAmountDiscountInclVATdecimaltrue</C>
<C>totalAmountDiscountExclVATdecimaltrue</C>
<C>totalAmountVATdecimaltrue</C>
<C>rateAmountVATdecimaltrue</C>
<C>returnReasonCodestringtrue</C>
<C>weightdecimaltrue</C>
<C>detailTypeinttrue</C>
<C>detailPOSReflong</C>
<C>menuItemIDlong</C>
</RH>
<Rows>
<R>
<companyCodestringtrue>111</companyCodestringtrue>
<storeNumstring>6002</storeNumstring>
<transactionDatedateTime>2011-07-27 00:00:00</transactionDatedateTime>
<transactionQualifierIDint>1</transactionQualifierIDint>
<transactionQualifierstring>Sales</transactionQualifierstring>
<costCenterNumberstringtrue/>
<revenueCenterPOSReflongtrue>1000</revenueCenterPOSReflongtrue>
<menuItemNumberlong>5900003</menuItemNumberlong>
<menuItemNameOnestring>Exc X Crmy 100g.LSCA</menuItemNameOnestring>
<menuItemNameTwostringtrue>Exc X Crmy 1.LSCA</menuItemNameTwostringtrue>
<crossReferenceOnestringtrue>1110</crossReferenceOnestringtrue>
<crossReferenceTwostringtrue>037466017594</crossReferenceTwostringtrue>
<consumerUnitDescriptionstringtrue/>
<transactionValueInclVATdecimaltrue>3.69</transactionValueInclVATdecimaltrue>
<transactionValueExclVATdecimaltrue>3.69</transactionValueExclVATdecimaltrue>
<productQuantityinttrue>1</productQuantityinttrue>
<productValueInclVATdecimaltrue>3.69</productValueInclVATdecimaltrue>
<productValueExclVATdecimaltrue>3.265487</productValueExclVATdecimaltrue>
<discountType01AmountInclVATdecimaltrue/>
<discountType02AmountInclVATdecimaltrue/>
<discountType03AmountInclVATdecimaltrue/>
<discountType04AmountInclVATdecimaltrue/>
<discountType05AmountInclVATdecimaltrue/>
<discountType06AmountInclVATdecimaltrue/>
<discountType07AmountInclVATdecimaltrue/>
<discountType08AmountInclVATdecimaltrue/>
<discountType09AmountInclVATdecimaltrue/>
<discountType10AmountInclVATdecimaltrue/>
<discountType01AmountExclVATdecimaltrue/>
<discountType02AmountExclVATdecimaltrue/>
<discountType03AmountExclVATdecimaltrue/>
<discountType04AmountExclVATdecimaltrue/>
<discountType05AmountExclVATdecimaltrue/>
<discountType06AmountExclVATdecimaltrue/>
<discountType07AmountExclVATdecimaltrue/>
<discountType08AmountExclVATdecimaltrue/>
<discountType09AmountExclVATdecimaltrue/>
<discountType10AmountExclVATdecimaltrue/>
<totalAmountDiscountInclVATdecimaltrue/>
<totalAmountDiscountExclVATdecimaltrue/>
<totalAmountVATdecimaltrue>0</totalAmountVATdecimaltrue>
<rateAmountVATdecimaltrue>13</rateAmountVATdecimaltrue>
<returnReasonCodestringtrue/>
<weightdecimaltrue>0</weightdecimaltrue>
<detailTypeinttrue>1</detailTypeinttrue>
<detailPOSReflong>5900003</detailPOSReflong>
<menuItemIDlong>136577483</menuItemIDlong>
</R>
<R>
<companyCodestringtrue>111</companyCodestringtrue>
<storeNumstring>6002</storeNumstring>
<transactionDatedateTime>2011-07-27 00:00:00</transactionDatedateTime>
<transactionQualifierIDint>1</transactionQualifierIDint>
<transactionQualifierstring>Sales</transactionQualifierstring>
<costCenterNumberstringtrue/>
<revenueCenterPOSReflongtrue>1000</revenueCenterPOSReflongtrue>
<menuItemNumberlong>5900185</menuItemNumberlong>
<menuItemNameOnestring>PD MousseHzl140g.LSCA</menuItemNameOnestring>
<menuItemNameTwostringtrue>PD MousseHzl.LSCA</menuItemNameTwostringtrue>
<crossReferenceOnestringtrue>428131</crossReferenceOnestringtrue>
<crossReferenceTwostringtrue>037466083414</crossReferenceTwostringtrue>
<consumerUnitDescriptionstringtrue/>
<transactionValueInclVATdecimaltrue>0</transactionValueInclVATdecimaltrue>
<transactionValueExclVATdecimaltrue>0</transactionValueExclVATdecimaltrue>
<productQuantityinttrue>0</productQuantityinttrue>
<productValueInclVATdecimaltrue>4.99</productValueInclVATdecimaltrue>
<productValueExclVATdecimaltrue>4.415929</productValueExclVATdecimaltrue>
<discountType01AmountInclVATdecimaltrue/>
<discountType02AmountInclVATdecimaltrue/>
<discountType03AmountInclVATdecimaltrue/>
<discountType04AmountInclVATdecimaltrue/>
<discountType05AmountInclVATdecimaltrue/>
<discountType06AmountInclVATdecimaltrue/>
<discountType07AmountInclVATdecimaltrue/>
<discountType08AmountInclVATdecimaltrue/>
<discountType09AmountInclVATdecimaltrue/>
<discountType10AmountInclVATdecimaltrue/>
<discountType01AmountExclVATdecimaltrue/>
<discountType02AmountExclVATdecimaltrue/>
<discountType03AmountExclVATdecimaltrue/>
<discountType04AmountExclVATdecimaltrue/>
<discountType05AmountExclVATdecimaltrue/>
<discountType06AmountExclVATdecimaltrue/>
<discountType07AmountExclVATdecimaltrue/>
<discountType08AmountExclVATdecimaltrue/>
<discountType09AmountExclVATdecimaltrue/>
<discountType10AmountExclVATdecimaltrue/>
<totalAmountDiscountInclVATdecimaltrue/>
<totalAmountDiscountExclVATdecimaltrue/>
<totalAmountVATdecimaltrue>0</totalAmountVATdecimaltrue>
<rateAmountVATdecimaltrue>13</rateAmountVATdecimaltrue>
<returnReasonCodestringtrue/>
<weightdecimaltrue>0</weightdecimaltrue>
<detailTypeinttrue>1</detailTypeinttrue>
<detailPOSReflong>5900185</detailPOSReflong>
<menuItemIDlong>136577665</menuItemIDlong>
</R>
</Rows>
</Table>
</Tables>
最佳答案
<!-- delete 0-quantity records -->
<xsl:template match="/ExportData/DataSet/Tables/Table/Rows/R[productQuantityinttrue='0']"/>It does basically work: it copies everything except the ones with productQuantityinttrue=0. But sometimes there are recordsets deleted that shouldn't be.
您没有提供重现此问题的示例。
我的猜测是您可以使用以下方法解决此问题:
<xsl:template match=
"Rows/R[not(productQuantityinttrue[2])
and
productQuantityinttrue='0'
]"/>
match
属性中的表达式仅选择只有一个 productQuantityinttrue 的
child 而这个唯一的 .../Rows/R
元素productQuantityinttrue
child child 的字符串值为 '0'
。
关于xml - 在条件下否定偏好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6882610/
typedef unsigned char uChar; typedef signed char sChar; typedef unsigned short uShort; typedef signe
我正在编写一个 android 应用程序并想做一个 SettingsActivity。 我的问题是我的矢量可绘制对象不会使其颜色适应夜间或白天主题。 ic_palette_black_24dp.xml
我正在使用多语言闹钟 android 应用程序工作: 1 个 xml 文件 [alarm_settings.xml] 2 个 string.xml 文件 [英语和阿拉伯语] 问题是本地化没有以正确的方
我正在尝试创建一个 SettingsActivity 并使用扩展 PreferenceFragment 的 Fragment 来实现此目的。我的 Activity 正在显示,而首选项不是。 Setti
我知道在使用自动属性时,编译器会在屏幕后面创建自己的支持字段。然而,在我阅读以学习的许多程序中,我看到人们明确地写 private int _backingField; public int Prop
在写入事件日志时,我可以创建一个 EventLog 实例,将其作为成员变量保存,并在每次我想记录消息时对其调用 WriteEntry(string message)。 或者,我可以只调用静态版本:Ev
如何通过ListPreference值设置依赖? 最佳答案 正如 Snicolas 已经指出的那样,依赖 xml 功能仅检查 bool 状态(= 如果引用的键为真或在其中设置了值)。如果启用,您可
如果我使用 Preference API存储用户或系统偏好,它们在 Windows 和 Unix 上存储在哪里? 最佳答案 对于 Windows,systemRoot 和 userRoot 分别存储在
测试 android.preference.PreferenceActivity 时,我收到以下警告: warning: [deprecation] getFragmentManager() in A
在优先级Activity中我们可以使用这两个方法SetContentView(R.layout.main) 和 addXmlFromResources(R.xml.Preferences) 用于自定义
在我的 Android 应用程序中,我有一个偏好 Activity ,让用户可以覆盖应用程序的语言。为此,我在每个 Activity 的 onResume() 中调用此函数,然后重置内容 View :
在我的preferences.xml 中,我有一个这样的偏好元素: 我想分配 onClick 事件,所以如果用户点击它,我将能够打开新的 Intent 或浏览器。我尝试像使用按钮一样进行操作,但这似
这是我的PreferenceActivity(我的主要 Activity 的内部类) public static class TestSettings extends PreferenceActivi
对于 MVC Razor 中的简单标签,您更喜欢使用简单的 HTML 还是使用扩展方法例如 Male Or @Html.Label("male", "Male") 我觉得有时使用简单的 HTML
我有一个很奇怪的问题。当我在我的设置- Activity 中滚动时,一些复选框在不再显示时会发生变化。例如:我取消选中广告复选框,然后向下滚动,当复选框完全消失时,复选框会重置。只有当我取消选中默认值
我有一个带有 PreferenceActivity 的 Android 应用程序,其中一个首选项条目启动了我自己的 Activity 之一(“关于”屏幕)。该条目如下所示: 此外(这很重
实现“夜间主题”。我不知道如何更改 ListPreference 的背景颜色。 PreferenceActivity "day" theme PreferenceActivity night them
这个问题在这里已经有了答案: When to use ES6 class based React components vs. functional ES6 React components? (5
我在私有(private)模式下启动了 Firefox 并打开了 youtube。我看到的第一件事是根据我以前的 watch 推荐的视频。但是我没有登录,我处于私有(private)模式,为什么 yo
我试图在偏好 Activity 中展示广告,但它从未出现过。 Logcat 始终显示消息“没有足够的空间来显示广告!想要:,有:” 这就是我制作广告的方式。我对广告有自定义偏好 public clas
我是一名优秀的程序员,十分优秀!