копирование данных из XML-файла в другой - PullRequest
0 голосов
/ 09 мая 2011

Я хочу скопировать содержимое из одного XML-файла (items.xml) в другой XML-файл (product.xml), где доступно = 'yes', с помощью xsl. Как я могу это сделать? У меня есть следующий XML-файл

item.xml:

<items>
    <item available="yes" >
        <name> laptop  </name>
        <quantity>  2 </quantity>
    </item>
    <item available="yes" >
        <name> mouse </name>
        <quantity> 1 </quantity>
    </item>
    <item available="no" >
        <name> keyboad </name>
        <quantity> 0</quantity>
    </item>
</items>

выход:

<items>
  <item>
    <name> laptop </name>
    <quantity> 2 </quantity>
  </item>
  <item>
    <name> mouse </name>
    <quantity> 1 </quantity>
  </item>
  <item available="no">
    <name> keyboad </name>
    <quantity>0</quantity>
  </item>
</items>

Ответы [ 3 ]

1 голос
/ 09 мая 2011

XSLT, который вам нужен, - это просто правило идентификации с дополнительным шаблоном для тех, которые вы хотите удалить, которое не генерирует вывод.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="item/@available[.='yes']" />

  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>

Первый шаблон является более конкретным и переопределяет более общий шаблон ниже.

0 голосов
/ 09 мая 2011

Вы можете использовать <xsl:import> или <xsl:copy> для достижения этой цели.

0 голосов
/ 09 мая 2011

Что вы имеете в виду, говоря "используя xsl, если доступно"?
Однако единственный способ добиться цели - это разобрать ее. Это зависит от используемой вами технологии. Например, в Java существует несколько способов анализа XML-файла: DOM, SAX, STAX.
Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...