XSLT 솔루션은 :
이 변환이 모든 문서에 적용되는
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="pNewIpAddress" select="'192.68.0.1'"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="ipAddress/text()">
<xsl:value-of select="$pNewIpAddress"/>
</xsl:template>
</xsl:stylesheet>
, 문서의 모든 노드를 제외하고 "있는 그대로"복사됩니다 모든 ipAddress
요소의 텍스트 노드 하위 요소 (이 요소가 문서의 어디에 있든 관계 없음) 후자는 $pNewIpAddress
이라는 외부에서 제공된 매개 변수의 값으로 대체됩니다.
예를 들어, 변환이 XML 문서에 대해 적용되는 경우 :
<t>
<a>
<b>
<ipAddress>127.0.0.1</ipAddress>
</b>
<c/>
</a>
<d/>
</t>
이 원하는 정확한 결과가 생성됩니다
있습니다
<t>
<a>
<b>
<ipAddress>192.68.0.1</ipAddress>
</b>
<c/>
</a>
<d/>
</t>
많은 자바 기반의 XSLT 프로세서 및 Java에서 호출 할 수있는 방법을 이해할 수있는 적절한 위치는 해당 설명서입니다. 최고의 같은 XSLT 프로세서 중 하나는 색슨이며, 해당 설명서에서 찾을 수 있습니다 :
http://www.saxonica.com/documentation/documentation.xml
좋은 질문, +1. 완전한 XSLT 솔루션에 대한 내 대답과 최고의 Java 기반 XSLT 프로세서 중 하나의 문서에 대한 링크를 참조하십시오. –
"최고"란 무엇을 의미합니까? 가장 편리한 (가장 단순한) 성능, 가장 큰 성능, 대용량 파일에 유용합니까? XSLT 및 트리 모델 (DOM)은 편리 할 수 있지만 많은 메모리를 사용하며 상대적으로 느립니다 (예를 들어). – StaxMan
색슨은 꽤 많이 최고입니다. 그것은 DOM보다 작은 메모리 내 모델을 가지고 있으며, 거대한 파일을위한 스트리밍을 지원하고, 뛰어난 옵티 마이저를 가지고 있으며, XSLT 1, XSLT 2, XQuery, XML Schema를 지원하며, 몇몇 새로운 드래프트 표준을 지원합니다. – lavinio