2012-04-26 2 views

답변

1

이 변환이 출력해야하는 데 사용할 수있는 어떤 템플릿 :

<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:template match="node()|@*"> 
    <xsl:copy> 
     <xsl:apply-templates select="node()|@*"/> 
    </xsl:copy> 
</xsl:template> 

<xsl:template match="foo/bar/@value[.='123']"> 
    <xsl:attribute name="value">baz</xsl:attribute> 
</xsl:template> 

<xsl:template match="foo[not(bar)]"> 
    <foo> 
    <bar value="baz"/> 
    </foo> 
</xsl:template> 
</xsl:stylesheet> 

제 제공된 XML 문서에 도포했을 때

<foo> 
    <bar value="123" /> 
</foo> 

가 원하는 정확한 결과 생산 : 제 제공된 XML 문서에 적용

<foo> 
    <bar value="baz"/> 
</foo> 

:

<foo> 
</foo> 

또한 올바른 결과 인가 생성됩니다. identity rule의 올바른 사용과 오버라이드 (override) :

설명.

+0

좀 더 일반적인 방법이 있습니까? 내가 추가하는 요소는 예제보다 조금 복잡합니다. 속성을 기반으로하지 않고 요소 이름을 기반으로 하위 요소를 포함하는 요소를 어떻게 대체합니까? –

+1

@MelGerats : 모든 것이 가능합니다. 이 질문을 잘 정의하고 새로운 질문을하십시오. 나는 대답하게되어 기쁠거야. –

1

.NET을 사용하고 있습니까? 그렇다면이 설정 변환을 위해 특히 고려해야 할 사항을 고려할 수 있습니다. MS 직원 Sayed Ibrahim Hashim은 모든 VS 프로젝트에 대한 웹 구성 변환 인 SlowCheetah을 만들었습니다.

여러분이 개 시나리오

는 될 :

<foo> 
    <bar xdt:Transform="Replace" value="123" /> 
</foo> 

<foo xdt:Transform="Replace"> 
</foo> 

XSLT 조금 자세한 IMO. Hansleman는 여기에서 찾을 수 있습니다 다른 변환에 대한 그것에 post

문서를 가지고 http://go.microsoft.com/fwlink/?LinkId=214134 SlowCheetah 확장이 추가

프로젝트에 복사 할 수있는 대상은 자기가 코드 플렉스에

을 포함 만들려면 또한 exe로 사용하거나 Transform Config 코드에서 사용하려는 경우 간단한 프로젝트입니다.

추신. Tom van Orbit One hier;)

+0

안녕하세요, Tom, 불행히도 실제 변환이 수행되는 방법을 제어 할 수 없습니다. –

+1

CMS 냄새가납니다. :) – buckley

+0

SlowCheetah 사용에 동의합니다! –

관련 문제