2009-06-19 3 views
1

У меня есть 2 xml файла. Я хотел бы, чтобы wite xsl-программа удаляла (и создавала новый xml) все узлы SearchApp_MA_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-файла, я должен устранить дубликаты. система рассматривает дубликаты, когда поле4, поле5 и поле6 одинаковы. – user114086

ответ

2

Да,

Я гугл своего вопроса (используя ключевые слова слияния XML XSLT) и нашел этот ресурс, который, кажется, попал свой вопрос пятно на: «Объединить два файла» http://www.dpawson.co.uk/xsl/sect2/merge.html#d7584e19

[facimilie из указанных выше ссылки]

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]"/> 

Решения используют документ функции xslt(), который может обращаться к узлам в XML-документе. Более подробную информацию о том, что вы можете найти на w3school: http://www.w3schools.com/Xsl/func_document.asp

0

Я не знаю, если какой-либо внедорожных шельфа XSLT парсеры будет делать то, что вы предлагаете ...

Возможно, вы захотите прочитать один из документов в дереве DOM, а затем прочитать в другом, добавив каждого из них.

Вы могли бы либо манипулировать DOM непосредственно в памяти, либо записать его в один документ, а затем преобразовать XSL, чтобы получить уникальные значения ...

Вот как я бы приблизился к нему как минимум.

0

В соответствии с тем, что я понимаю, вам нужно объединить 2 xml-файла с помощью XSLT.

Посмотрите на функцию "document()" в XSLT.

Cheers

Смежные вопросы