2009-06-19 2 views
1

2 개의 XML 파일이 있습니다. 나는 wite xsl program SearchApp_MA_Request의 모든 노드를 없애고 SearchApp_LA_Request에서 SearchApp_LA_Request의 모든 노드 (Field4와 Field5와 Field6가 두 파일에서 같을 때)를 만들고 싶습니다.XSLT를 사용하면 가능합니까?

SearchApp_LA_Request.xml

<Request> 
    <Rows> 
     <Row1> 
      <Field1>Item1</Field1> 
      <Field2>Item2</Field2> 
      <Field3>Item3</Field3> 
      <Field4>Item4</Field4> 
      <Field5>Item5</Field5> 
      <Field6>Item6</Field6> 
     </Row1> 
     <Row2> 
      <Field1>Item1</Field1> 
      <Field2>Item2</Field2> 
      <Field3>Item3</Field3> 
      <Field4>Item4</Field4> 
      <Field5>Item5</Field5> 
      <Field6>Item6</Field6> 
     </Row2> 
     <Row3> 
      <Field1>Item1</Field1> 
      <Field2>Item2</Field2> 
      <Field3>Item3</Field3> 
      <Field4>Item4</Field4> 
      <Field5>Item5</Field5> 
      <Field6>Item6</Field6> 
     </Row3> 
     <Row4> 
      <Field1>Item1</Field1> 
      <Field2>Item2</Field2> 
      <Field3>Item3</Field3> 
      <Field4>Item4</Field4> 
      <Field5>Item5</Field5> 
      <Field6>Item6</Field6> 
     </Row4> 
    </Rows> 
</Request> 

SearchApp_MA_Request.xml

<Request> 
    <Rows> 
     <Row1> 
      <Field1>Item1</Field1> 
      <Field2>Item2</Field2> 
      <Field3>Item3</Field3> 
      <Field4>Item4</Field4> 
      <Field5>Item5</Field5> 
      <Field6>Item6</Field6> 
     </Row1> 
     <Row2> 
      <Field1>Item1</Field1> 
      <Field2>Item2</Field2> 
      <Field3>Item3</Field3> 
      <Field4>Item4</Field4> 
      <Field5>Item5</Field5> 
      <Field6>Item6</Field6> 
     </Row2> 
     <Row3> 
      <Field1>Item1</Field1> 
      <Field2>Item2</Field2> 
      <Field3>Item3</Field3> 
      <Field4>Item4</Field4> 
      <Field5>Item5</Field5> 
      <Field6>Item6</Field6> 
     </Row3> 
     <Row4> 
      <Field1>Item1</Field1> 
      <Field2>Item2</Field2> 
      <Field3>Item3</Field3> 
      <Field4>Item4</Field4> 
      <Field5>Item5</Field5> 
      <Field6>Item6</Field6> 
     </Row4> 
    </Rows> 
</Request> 
+0

당신은 당신이 분명히있는 것 같아요 수 있지만, 정말 당신이 질문을하는지 모른다. (XML과 XSLT에 대한 경험이 부족한 것은 아닙니다.) 질문을 다시 말하고 무엇을 성취하려고하는지 정확하게 알려주십시오. – bendin

+0

*이 2 xml 파일을 사용하여 중복을 제거해야합니다. 시스템은 field4, field5 및 field6이 같을 때 중복을 고려합니다. – user114086

답변

2

예 : 위의 링크에서 facimilie] http://www.dpawson.co.uk/xsl/sect2/merge.html#d7584e19

'두 파일을 병합'을

Michael Kay 

> I have two documents, file A and file B. I want to join them 
> on the id of 
> the first, but only if a matching id is in the 2nd. How do I do this? 
> 
> File A    File B    Desired Output 
> <id> A </id>  <id> A </id>   <id> A </id> 
> <id> B </id>  <id> C </id>   <id> D </id> 
> <id> D </id>  <id> D </id> 
> 

<xsl:copy-of select="document('a.xml')//id[.=document('b.xml')//id]"/> 

이 솔루션은 XML 문서의 노드에 액세스 할 수있는 xslt 함수 document()를 사용합니다. 더 많은 정보를 w3school에서 찾을 수 있습니다 : http://www.w3schools.com/Xsl/func_document.asp

0

어떤 오프 선반 XSLT 파서 당신이 제안하고 무엇을 할 것인지 몰라요 ...

DOM 트리에 문서 중 하나를 읽고 다른 문서를 읽고 각 자식을 추가 할 수 있습니다.

당신은 다음

그건 내가 적어도 접근 줄 방법 ​​... 메모리에 직접 DOM을 조작, 또는 다른 하나 개의 문서에 쓰는 한 후 고유 한 값을 얻기 위해 XSL 변환을 할 수있는 중. 나는 (키워드는 XML을 XSLT를 병합 사용) 질문을 봤와에 질문 은데 것이 자원 발견

0

내가 이해 한 바에 따르면, XSLT를 사용하여 2 개의 XML 파일을 병합해야합니다.

XSLT의 "document()"기능을 살펴보십시오.

건배

관련 문제