我正在努力尋找XML消息提取問題的解決方案。 我所擁有的是下面的XML消息的相似:XSLT選擇XML消息的一部分
<Orders xmlns="http://AU.InputOrders">
<Order>
<OrderRef>D04004451</OrderRef>
<OrderQty>5</OrderQty>
</Order>
<Order>
<OrderRef>D04004451</OrderRef>
<OrderQty>1</OrderQty>
</Order>
<Order>
<OrderRef>D04004452</OrderRef>
<OrderQty>1</OrderQty>
</Order>
<Order>
<OrderRef>D04004452</OrderRef>
<OrderQty>4</OrderQty>
</Order>
<Order>
<OrderRef>D04004452</OrderRef>
<OrderQty>2</OrderQty>
</Order>
</Orders>
我需要一個XSLT只得到該位:
<Orders xmlns="http://AU.InputOrders">
<Order>
<OrderRef>D04004451</OrderRef>
<OrderQty>5</OrderQty>
</Order>
<Order>
<OrderRef>D04004451</OrderRef>
<OrderQty>1</OrderQty>
</Order>
</Orders>
和
<Orders xmlns="http://AU.InputOrders">
<Order>
<OrderRef>D04004452</OrderRef>
<OrderQty>1</OrderQty>
</Order>
<Order>
<OrderRef>D04004452</OrderRef>
<OrderQty>4</OrderQty>
</Order>
<Order>
<OrderRef>D04004452</OrderRef>
<OrderQty>2</OrderQty>
</Order>
</Orders>
換句話說,我需要根據OrderRef元素值檢索訂單部件。
謝謝。
試過下面的解決方案和兩個作品。 找到了另一種解決方案。它不使用OrderRef,而是使用Order元素的位置。仍然這個正在做我所需要的。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="http://AU.InputOrders">
<xsl:output method="xml" encoding="utf-8" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/">
<xsl:element name="Orders" namespace="http://AU.InputOrders">
<xsl:copy-of select="ns0:Orders/ns0:Order[position() >= 1 and position() <=2]"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
謝謝。
您的解決方案根本不使用'OrderRef';那不是你的要求之一嗎?您的解決方案僅適用於您需要的'Order'元素碰巧是'訂單'中的前2個元素。 –
這是真的,但後來我意識到如果我將使用Order元素位置而不是OrderRef,會對我的問題更好。我在這裏發佈了使用固定位置的解決方案,但在現實生活中,我通過代碼中的System.String.Format來傳遞這些位置。 –