Nano Hash - криптовалюты, майнинг, программирование

XSLT — получить xml из другого XML

Мне нужно извлечь xml внутри другого с полем XSLT fron.

<?xml version="1.0" encoding="UTF-8" ?> 
<ns:JDBC_SELECT xmlns:ns="namepace/nt">
<row>
<KEY>19</KEY> 
<QUEUE_TYPE>2</QUEUE_TYPE> 
<EVENT_STATUS>0</EVENT_STATUS> 
<EVENT_TYPE>New Work Package Request</EVENT_TYPE> 
<CONTENT><?xml version="1.0" encoding="utf-8" standalone="yes"?><event xmlns:ns="namespace/nt" reference="0000000000" source="NBA" target="SAP" timestamp="2013-02-04T14:32:01.836+00:00" type="New Work Package Request" version="1.0" id="19"><new-work-package-request-event><work-order-id>11</work-order-id><personnel-id>ra_a</personnel-id><request-timestamp>2013-02-04T14:32:01.836+00:00</request-timestamp><new-notification-request><type>Z2</type><requirement-code>RI0D</requirement-code><main-work-centre>0102</main-work-centre><planner-group>L00</planner-group><functional-location-id>1024</functional-location-id><short-text>SET UP/REMOVE ISOLATION RUN</short-text><long-text>SET UP/REMOVE ISOLATION RUN, 1024, NORTON FOXLEY (PRV) NORTON FOXLEY Nightline Increase: (l/h)</long-text><personnel-resp-id>12157</personnel-resp-id><cost-centre>3600</cost-centre></new-notification-request><new-work-order-request><type>ZPM2</type></new-work-order-request></new-work-package-request-event></event></CONTENT> 
</row>
</ns:JDBC_SELECT>

<xsl:transform xmlns:xsl="namespace/nt" version="1.0">
  <xslutput method="xml"/>
  <xsl:template match="/">
    <xsl:copy-of select="//CONTENT"/>
  </xsl:template>
</xsl:transform>

Но не удача. Есть идеи?

05.02.2013

  • Как вы создаете этот файл XML? 05.02.2013

Ответы:


1

XML недействителен — он не может содержать второй

<?xml version="1.0" encoding="utf-8"?>

объявление внутри элемента. Как то не загружается.

В XSLT тоже есть проблема — пространство имен должно быть http://www.w3.org/1999/XSL/Transform:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="/">
      <xsl:copy-of select="//CONTENT"/>
    </xsl:template>

</xsl:stylesheet>

Как только вы избавитесь от второго объявления <?xml....> в XML, приведенный выше XSLT заработает и выдаст следующий результат:

<?xml version="1.0" encoding="utf-8"?>
<CONTENT xmlns:ns="namepace/nt">
  <event reference="0000000000" source="NBA" target="SAP" timestamp="2013-02-04T14:32:01.836+00:00" type="New Work Package Request" version="1.0" id="19" xmlns:ns="namespace/nt">
    <new-work-package-request-event>
      <work-order-id>11</work-order-id>
      <personnel-id>ra_a</personnel-id>
      <request-timestamp>2013-02-04T14:32:01.836+00:00</request-timestamp>
      <new-notification-request>
        <type>Z2</type>
        <requirement-code>RI0D</requirement-code>
        <main-work-centre>0102</main-work-centre>
        <planner-group>L00</planner-group>
        <functional-location-id>1024</functional-location-id>
        <short-text>SET UP/REMOVE ISOLATION RUN</short-text>
        <long-text>SET UP/REMOVE ISOLATION RUN, 1024, NORTON FOXLEY (PRV) NORTON FOXLEY Nightline Increase: (l/h)</long-text>
        <personnel-resp-id>12157</personnel-resp-id>
        <cost-centre>3600</cost-centre>
      </new-notification-request>
      <new-work-order-request>
        <type>ZPM2</type>
      </new-work-order-request>
    </new-work-package-request-event>
  </event>
</CONTENT>
05.02.2013
  • Привет, да, я знаю, но они присылают мне XML внутри другого, а потом я должен его извлечь. Это должен быть способ сделать это, но я не знаю. 05.02.2013
  • Я не думаю, что тогда вы можете использовать XSLT - вам нужно написать программу, которая обрабатывает XML как текст или, по крайней мере, избавиться от лишней декларации, а затем вы можете использовать XSLT для полученного «чистого XML». 05.02.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..