감사합니다. 많은 제안과 답변에 stackoverflow 감사드립니다. 아래 xslt를 사용하여 rootnode에서 속성 값을 정렬하는 데 도움이 필요합니다.
는 이 소스 XML이 가지고<?xml version="1.0" encoding="UTF-8"?>
<PurchaseOrderDocument creationDate="2017-09-26T18:37:48.837Z"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:dssuid="urn:autoid:specification:universal:Identifier:xml:schema:1"
xmlns:dsscore="urn:autoid:specification:interchange:PMLCore:xml:schema:1">
<PurchaseQuery>
<EventDate>20170926</EventDate>
<bizLocation>
<id>urn:ddd:id:sgln:0315563.00000.0</id>
</bizLocation>
<Serialization>
<BATCH_ID>3091145AB</BATCH_ID>
<EXPIRATION_DATE>20190504</EXPIRATION_DATE>
<PRODUCTION_DATE>20170505</PRODUCTION_DATE>
<GTIN>04028691544401</GTIN>
<Count>8088</Count>
</Serialization>
</PurchaseQuery>
</PurchaseOrderDocument>
내 실제 목표는 내가 아래 XSLT를 적용하려고
<?xml version="1.0" encoding="UTF-8"?>
<ns0:PurchaseOrderDocument xmlns:ns0="urn:global:mns:PurchaseOrder"
creationDate="2017-09-26T18:37:48.837Z">
<PurchaseQuery>
<EventDate>20170926</EventDate>
<bizLocation>
<id>urn:ddd:id:sgln:0315563.00000.0</id>
</bizLocation>
<Serialization>
<BATCH_ID>3091145AB</BATCH_ID>
<EXPIRATION_DATE>20190504</EXPIRATION_DATE>
<PRODUCTION_DATE>20170505</PRODUCTION_DATE>
<GTIN>04028691544401</GTIN>
<Count>8088</Count>
</Serialization>
</PurchaseQuery>
</ns0:PurchaseOrderDocument>
아래처럼 보일 것입니다 원치 않는 네임 스페이스를 가지고 내 소스 코드이지만, 속성은 아닌 타겟이 기대하는 순서
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="2.0" encoding="UTF-8" />
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*" priority="1">
<xsl:element name="{local-name()}" >
<xsl:namespace name="ns0"
select="'urn:global:mns:PurchaseOrder'"/>
<xsl:apply-templates select="@*|node()"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
T 그는 XSLT를 적용 후 출력
<?xml version='1.0' encoding='UTF-8' ?>
<PurchaseOrderDocument xmlns:ns0="urn:global:mns:PurchaseOrder"
creationDate="2017-09-26T18:37:48.837Z">
<PurchaseQuery>
<EventDate>20170926</EventDate>
<bizLocation>
<id>urn:ddd:id:sgln:0315563.00000.0</id>
</bizLocation>
<Serialization>
<BATCH_ID>3091145AB</BATCH_ID>
<EXPIRATION_DATE>20190504</EXPIRATION_DATE>
<PRODUCTION_DATE>20170505</PRODUCTION_DATE>
<GTIN>04028691544401</GTIN>
<Count>8088</Count>
</Serialization>
</PurchaseQuery>
</PurchaseOrderDocument>
아래 내가 네임 스페이스 전에 작성 날짜 속성 얻기 위해 여러 가지 방법을 시도하지만이 실종이 많은 블로그를 보았다 어딘지 이해 .I이 할 수없는 나는 헛되이 갔지만 같다 나는 불행하게도 대상 구조에서 올바른 위치에 올 루트 노드의 특성 (동적 값)을 유지하는 방법을 찾을 수 없습니다.이 논리는 나에게 중요합니다 .XSLT 코드에 무엇을 포함시켜야하는지 제안하십시오. 실제 목표물 구조를 얻으려면. 모든 도움이 크게 감사 할 것입니다.
위의 경우에 대한 XSLT 코드가 있습니까? 저에게 알려주세요. Anyhelp는 크게 감사하겠습니다. – piuser
네임 스페이스 특성을 xsl : element 명령에 추가합니다 (네임 스페이스 URI로 설정). xsl : namespace 명령을 h 제하십시오. –