반응형
요소의 XSLT 이름이 있습니까?
XSLT에는
<xsl:value-of select="expression"/>
요소의 값을 얻으려면 요소의 태그 이름을 선택해야 합니까?
이런 상황에서:
<person>
<!-- required stuff -->
<name>Robert</name>
<!-- optional stuff, free form for future extension.
Using XMLSchema's xsd:any -->
<profession>programmer</profession>
<hobby>photography</hobby>
</person>
<xsl:for-each select="person">
<xsl:tag-of select="."/> : <xsl:value-of select="."/>
</xsl:for-each>
다음과 같은 출력을 얻으려면:
name : Robert profession : programmer hobby : photography
물론 위의 XSLT는 컴파일이 되지 않습니다.
<xsl:tag-of select="expression"/>
존재하지 않습니다.하지만 어떻게 이런 일을 할 수 있을까요?
현재 요소 이름(태그 이름)을 제공합니다.
<xsl:value-of select ="name(.)"/>
OP-편집:이 방법으로도 효과가 있습니다.
<xsl:value-of select ="local-name()"/>
아무도 함수의 의미론의 미묘한 차이를 지적하지 않았습니다. 그리고.
name(someNode)
노드의 전체 이름을 반환하며 노드가 요소이거나 속성인 경우 접두사와 콜론이 포함됩니다.local-name(someNode)
는 노드의 로컬 이름만 반환하며 노드가 요소 또는 속성인 경우 접두사와 콜론은 포함하지 않습니다.
따라서 이름이 두 개의 다른 네임스페이스에 속할 수 있는 상황에서는 다음을 사용해야 합니다.name()
이 이름들이 여전히 구별될 수 있도록 기능합니다.
그리고, BTW, 논쟁 없이 두 함수를 모두 지정하는 것이 가능합니다.
name()
는 의 약어입니다.
local-name()
는 의 약어입니다.
마지막으로 요소와 속성에만 이름이 있는 것이 아니라 이 두 기능을 PI에서 사용할 수 있으며 동일하다는 것을 기억해야 합니다.
<xsl:for-each select="person">
<xsl:for-each select="*">
<xsl:value-of select="local-name()"/> : <xsl:value-of select="."/>
</xsl:for-each>
</xsl:for-each>
관심있는 분들께는 다음 사항이 없습니다.
<xsl:tag-of select="."/>
그러나 다음과 같은 방법으로 태그/요소를 다시 생성할 수 있습니다.
<xsl:element name="{local-name()}">
<xsl:value-of select="substring(.,1,3)"/>
</xsl:element>
예를 들어 여러 요소에 대한 형식 지정 데이터 값을 처리하는 xslt 템플릿에서 유용합니다.작업 중인 요소의 이름을 모를 때에도 동일한 요소를 출력할 수 있으며 필요한 경우 값을 수정할 수 있습니다.
<xsl:value-of select="name(.)" /> : <xsl:value-of select="."/>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="person">
<xsl:for-each select="*">
<xsl:text>
</xsl:text>
<xsl:value-of select="local-name()"/> : <xsl:value-of select="."/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
언급URL : https://stackoverflow.com/questions/585261/is-there-an-xslt-name-of-element
반응형
'source' 카테고리의 다른 글
Angular의 두 가지 사례가 필요합니다.JS $http 서비스? (0) | 2023.11.07 |
---|---|
각 리소스 호출 및 $q (0) | 2023.11.07 |
printk와 pr_info의 차이 (0) | 2023.11.07 |
루트(또는 sudo)에서 NVM을 사용할 수 없습니다. (0) | 2023.11.07 |
문자열에 C#의 숫자만 포함되어 있는지 확인하는 가장 빠른 방법 (0) | 2023.11.02 |