2012-02-08 3 views
0

일부 25 개의 요소가있는 XML 파일이 있습니다. 난 그냥 2 요소를 변환하고 남아있는 XML을 유지 싶어요. 누군가가 어떻게해야하는지 말해 줄 수 있겠습니까? 모든 예제를 온라인으로 XML 문서를 수정하는, 나는 이것을 원하지 않는다. 두 요소의 값을 수정하기 만하면됩니다.XSL을 사용하여 XML의 작은 부분을 수정하는 방법

+2

이 두 요소는 어떻게 고유하게 식별 되나요?, xml 샘플을 게시하십시오. – Kristofer

+0

샘플 XML을 게시하고이 두 요소를 무엇으로 변환 하시겠습니까? –

답변

0

아래 예제에서는 xsd 파일을 구문 분석하고 모든 주석을 제거합니다.

<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 

<!-- copy all nodes and attributes --> 
<xsl:template match="node() | @*"> 
    <xsl:copy> 
     <xsl:apply-templates select="node() | @*"/> 
    </xsl:copy> 
</xsl:template> 

<!-- but remove annotations --> 
<xsl:template match="xs:annotation"/> 
6

이러한 작업은 예컨대 변경이 요소에 대한 템플릿을 추가 한 다음

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

및 인 항등 변환 템플릿을 사용하여 해결된다

<xsl:template match="foo"> 
    <bar> 
    <xsl:apply-templates select="@* | node()"/> 
    </bar> 
</xsl:template> 

foobar하는 요소 및/또는

<xsl:template match="foobar"/> 

foobar는 요소를 삭제를 변경한다. 우리는 그 내용과 baz 요소를 복사하려고 할 때 우리가 당신이 신원 변환을 지킬 템플릿

<xsl:template match="baz"> 
    <xsl:copy> 
    <xsl:apply-templates select="@* | node()"/> 
    <new>...</new> 
    </xsl:copy> 
</xsl:template> 

을 추가 할 수 있습니다 new 요소를 추가하려면

는 예를 들어, 당신에게 또 다른 예를 제공합니다 변경하고 싶지 않은 것에 대해서는 alive (apply-templates)를 사용하면 변경할 각 요소에 대한 템플릿을 작성하여 스타일 시트를 구조화 할 수 있습니다.

+0

감사합니다. 그 일. – Chandu

관련 문제