我试图转换包含xmlns
属性的另一个元素的子元素,但似乎我的转换被忽略,直到我删除xmlns
。如何转换具有XMLNS属性的元素
所以我们说我有:
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
internalLogLevel="Trace"
internalLogFile="NLogInternal.log"
autoReload="true">
<targets>
</targets>
</nlog>
,我试图获得与摆脱targets
元素:
<nlog>
<targets xdt:Transform="Remove" />
</nlog>
但是,这似乎并没有工作,但是如果我删除xmlns
和预期的xmlns:xsi
属性转换工作。
我做错了什么?
'xmlns'属性定义了一个默认名称空间。你必须声明它在你的XSLT *中为这个名字空间分配一个前缀*(例如'ns1',使用'xmlns:ns1 =“...”'),并且使用前缀(例如:ns1 :targets')。您也可以尝试使用没有名称空间的XPath表达式('* [name()='targets')') – helderdarocha
注意:'xdt:Transform'对于Microsoft web.config非常特定。您应该用'xdt'标签标记问题,以引入该领域的专家。 – bjimba
搜索“XSLT默认命名空间”,你会发现这个问题约500个答案。 –