일부 XML의 요소를 특정 레벨에서 요소의 이름으로 재주문하고 싶습니다. 그러나 약간의 문제가 있습니다. 여기에 내가 2008 R2 SQL 서버에서 변수 @XML에 사용하고 (함께 일하고 예제 XML 출력입니다 :중급 xquery에서 element local-name으로 xml을 주문하십시오.
<Data>
<Uns>
<Orgs>
<Prods>
<Prod>
<Something>1</Something>
<Cars>
<Car>
<Number>2013213</Number>
<BasicInfo>
<FirstName>Bob</FirstName>
<LastName>Monkhouse</LastName>
</BasicInfo>
<Anything>654</Anything>
</Car>
<Car>
<Number>2013213</Number>
<BasicInfo>
<FirstName>Bob</FirstName>
<LastName>Monkhouse</LastName>
</BasicInfo>
<Anything>654</Anything>
</Car>
</Cars>
</Prod>
<Prod>
<Cars>
<Car>
<Number>2013213</Number>
<BasicInfo>
<FirstName>Bob</FirstName>
<LastName>Monkhouse</LastName>
</BasicInfo>
<Anything>654</Anything>
</Car>
</Cars>
</Prod>
</Prods>
</Orgs>
</Uns>
</Data>
내가 위의 예에서 (순서를 변경하고 싶습니다)의 모든 자식 요소는 알파벳 순으로 <Cars>
의 내용을 그대로두고 그 내용을 그대로 둡니다. 대답이 아이디어를 주었지만 오류가있는 question에 대한 일부 도움을 준 후 다음과 같은 모든 변형을 시도해 보았습니다.
select @XML.query('element Cars {
for $anything in //Car
order by local-name($anything/*[1])
return $anything
}')
하지만 아무 것도 작동하지 않는 것 같습니다. 나는이 세 가지 문제의 조합에 대해 끊임없이 노력하고 있습니다. "XQuery 구문 '/ function()'이 지원되지 않습니다. 위의 예에서와 같이 모든 상위 요소를 잃거나 순서에 전혀 영향을주지 않습니다 (위와 같습니다). 나는 SELECT @XML.query()
대신에 SET @XML.modify()
을 사용해야한다고 생각합니다.하지만 그 결과는 더 적습니다.
나는 인터넷에서 많은 양의 trawling을 해왔지만, 내가 찾은 사이트 중 아무 것도 xquery FLWOR 구문을 완벽하게 이해하지 못하는 것 같다. 단지 구체적이고 흔히 간단한 예제가 주어졌지만 도움이되지 않았다. 나는 내가 바라는대로 이것이 왜 행동하지 않는지에 대한 해결책을 찾는다. 여기
위의 XML이 이상적으로 변환 한 후 같을 것이다 것입니다 (수, BasicInfo의 순서와 아무것도 알파벳으로 변경) :<Data>
<Uns>
<Orgs>
<Prods>
<Prod>
<Something>1</Something>
<Cars>
<Car>
<Anything>654</Anything>
<BasicInfo>
<Name>Bob</Name>
</BasicInfo>
<Number>2013213</Number>
</Car>
<Car>
<Anything>654</Anything>
<BasicInfo>
<Name>Bob</Name>
</BasicInfo>
<Number>2013213</Number>
</Car>
</Cars>
</Prod>
<Prod>
<Cars>
<Car>
<Anything>654</Anything>
<BasicInfo>
<Name>Bob</Name>
</BasicInfo>
<Number>2013213</Number>
</Car>
</Cars>
</Prod>
</Prods>
</Orgs>
</Uns>
</Data>
많은 감사 어떤 도움과 조언; 구문을보다 완벽하게 이해하기 위해 온라인에서 계속 검색 할 것입니다. 그러나 정확히 무엇을하고 있는지 알지만, 결과를 얻는 것이이 단계에서 진정한 향상이 될 것입니다!
감사합니다.
몇 가지 질문 : 노드 순서가 중요한 이유는 무엇입니까? 어디에서 XML을 가져 왔으며 SQL Server에 삽입하기 전에 XML을 조작 할 수없는 이유가 무엇입니까? –