繁体   English   中英

使用 XSLT 搜索替换 XML 中的值

[英]Search Replace value in XML using XSLT

我是 XSLT 的新手,需要一些帮助,我得到了一个原始 XML,我需要将其转换为转换后的 XML

原来的

<?xml version="1.0" encoding="UTF-8"?>
<cXML payloadID="121" timestamp="2022-09-12" version="1.2.031" xml:lang="en-US">
<Header>
<From>
<Login domain="RollID">
<Value>ABC12100</Value>
</Login>
<Login domain="NameID">
<Value>BOB</Value>
</Login>
<Login domain="CourseID">
<Value>Default</Value>
</Login>
</From>
<Header>
<OrderID>
<OrderHeaderID sampleID="sdhjgwsd" orderDate="TEST-2022-09-12T21:30:31+02:00" orderID="66625" orderType="regular" orderVersion="1" type="new">
</OrderID>
</cXML>

变形XML

<?xml version="1.0" encoding="UTF-8"?>
<cXML payloadID="121" timestamp="2022-09-12" version="1.2.031" xml:lang="en-US">
<Header>
<From>
<Login domain="RollID">
<Value>ABC12100_TEST</Value>
</Login>
<Login domain="NameID">
<Value>BOB</Value>
</Login>
<Login domain="CourseID">
<Value>Default</Value>
</Login>
</From>
<Header>
<OrderID>
<OrderHeaderID sampleID="sdhjgwsd" orderDate="2022-09-12T21:30:31+02:00" orderID="66625_**TEST**" orderType="regular" orderVersion="1" type="new">
</OrderID>
</cXML>

我需要 OrderId 值和 cXML/Header/From/Login[@domain='RollID']/附加到 TEST,如变换 XML 中所述。 请帮忙 !!

使用身份模板编写转换以复制所有未更改的内容,以及用于转换所选属性的模板

<xsl:template match="@orderID">
  <xsl:attribute name="orderID"><xsl:value-of select="."/>_**TEST**</xsl:attribute>
</xsl:template>

这个问题确实让人感觉好像您在没有先做一些阅读的情况下就开始使用 XSLT。 花几个小时看一本书或教程将是您时间的一项很好的投资。

此外,在 XSLT 问题中说出您使用的是 1.0、2.0 还是 3.0 始终是一个好主意,因为它们都在广泛使用,而且答案通常会有所不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM