일부 선택적 노드가있는 기존 XML 문서가 있는데 특정 노드에 새로운 노드를 삽입하려고합니다. 그 결과,기존 문서의 특정 위치에 XML 노드를 삽입하십시오.
<root>
<a>...</a>
...
<r>...</r>
<t>...</t>
...
<z>...</z>
</root>
새로운 노드 (<s>...</s>
)이 노드 <r>
및 <t>
사이에 삽입해야합니다 :
문서는 다음과 같이 보이는,
<root>
<a>...</a>
...
<r>...</r>
<s>new node</s>
<t>...</t>
...
<z>...</z>
</root>
문제가 있다는 기존의 노드는 선택 사항입니다. 따라서 XPath를 사용하여 노드 <r>
을 찾은 다음 새 노드를 삽입 할 수 없습니다.
나는 "무차별 방식"을 피하고 싶습니다. <r>
에서 <a>
까지 검색하여 존재하는 노드를 찾으십시오.
또한 XML 문서가 XML 스키마를 준수해야하므로 순서를 유지하려고합니다.
일반 XML 라이브러리뿐만 아니라 XSLT도 사용할 수 있지만 Saxon-B 만 사용하므로 스키마 인식 XSLT 처리는 옵션이 아닙니다.
누구나 그러한 노드를 삽입하는 방법에 대한 아이디어가 있습니까? 당신이 삽입 위치를 찾을 수 정적 경로가 없기 때문에
들으, MyKey_
'r'노드가없는 경우에는 원래의 질문에 따라 모든 노드가 선택 사항입니다. 노드가 존재할 수 없다면 템플릿은 어떻게 보이나요? –
죄송합니다. 원래 게시물을 잘못 읽었습니다. 이제 그 대답을 완전히 대체했습니다. 감사. –
정말 멋집니다. 약간의 수정 : $ elments-after를 유도 할 때 's'대신 변수를 사용하면 어떤 자식이든 후에 자동으로 삽입을 처리 할 수 있습니다. –
13ren