2016-09-15 1 views
0

XML-я выборки данных из:Влияет ли элемент br при перемещении xml для вывода элемента? Или что еще может быть неправильно в этом примере?

<item> 
    <title>NGC 1672: Barred Spiral Galaxy from Hubble </title> 
    <link>http://antwrp.gsfc.nasa.gov/apod/astropix.html</link> 
    <description> 
    <p> 
     <a href="http://antwrp.gsfc.nasa.gov/apod/astropix.html"> 
     <img src="http://antwrp.gsfc.nasa.gov/apod/calendar/S_160913.jpg" align="left" alt="Many spiral galaxies have bars across their centers. " border="0" /> 
     </a> Many spiral galaxies have bars across their centers. 
    </p> 
    <br clear="all"/> 
    </description> 
</item> 

Я заинтересован в пречисление атрибут Src из элемента IMG, но в конечном итоге ни с чем.

Тестирование пречисление весь элемент описания работает, как ожидалось: Код:

<xsl:template match="description"> 
    <div class="pictureoftoday"> 
     <xsl:value-of select="."/> 
    </div> 
</xsl:template> 

Результат/выход:

<p> 
<a href="http://antwrp.gsfc.nasa.gov/apod/astropix.html"> 
<img src="http://antwrp.gsfc.nasa.gov/apod/calendar/S_160915.jpg" align="left" alt="Retrograde Mars and Saturn" border="0" /> 
</a> Retrograde Mars and Saturn 
</p> 
<br clear="all"/> 

Попытка перечислить из р, а, IMG не работает, и поэтому Я, конечно, не получаю @src от img.

Например:

<xsl:template match="description"> 
    <div class="pictureoftoday"> 
     <xsl:value-of select="img/@src"/> 
    </div> 
</xsl:template> 

не работает, ни

<xsl:template match="description"> 
    <div class="pictureoftoday"> 
     <xsl:value-of select="p/a/img/@src"/> 
    </div> 
</xsl:template> 

Я пробовал все варианты. Btw, я знаю, как извлечь изображение из него после, но сначала я должен иметь возможность получить ссылку на изображение в любом случае ...

Кто-нибудь видит решение?

Я начал думать, что

<br clear="all"/> 

из XML разрушает все ...

Сердечные приветы Оле

+0

Ваша проблема не может быть воспроизведена из кода, который вы опубликовали. Пожалуйста, напишите полный и воспроизводимый пример - см. [Mcve]. –

ответ

0

Ваш вопрос сбивает с толку, потому что коды вы выложили сделать не результат, который вы требуете.


Фактический результат:

<xsl:template match="description"> 
    <div class="pictureoftoday"> 
     <xsl:value-of select="."/> 
    </div> 
</xsl:template> 

является:

<div class="pictureoftoday"> Many spiral galaxies have bars across their centers. 
    </div> 

, что является div элемент, содержащий строковое значение узла контекста description - который вычисляется в виде конкатенации всего его потомка текст узлы (атрибуты в этом не включены).


И фактический результат:

<xsl:template match="description"> 
    <div class="pictureoftoday"> 
     <xsl:value-of select="p/a/img/@src"/> 
    </div> 
</xsl:template> 

является:

<div class="pictureoftoday">http://antwrp.gsfc.nasa.gov/apod/calendar/S_160913.jpg</div> 

, которую я считаю, удовлетворяет ваше требование:

Я заинтересован в листинге вне атрибут src из элемента img


br элемент не имеет ничего общего с этим.

+0

Спасибо, ваш ответ именно то, что я считал правильным, и мой вопрос, конечно, запутан. Ваше сообщение помогает мне уточнить. Тем не менее, я все еще получал выходные данные, которые я опубликовал в своем вопросе, даже если бы я ожидал точно результатов, которые вы предлагаете. Это заставляет меня думать, что я, возможно, искал не то место. Думаю, я просто погружаюсь в изучение того, что происходит глубже в веб-части SharePoint xml, которую я использую для отображения этого изображения. Я даю вам знать, когда/если я найду решение. Любые дополнительные предложения также будут очень желанными. Ole E –

+0

** 1. ** Есть ли у вас какие-либо другие шаблоны в вашей таблице стилей - например, шаблон преобразования идентификатора *? ** 2. ** Возможно ли, что элемент 'description' в вашем XML находится в пространстве имен * *? Вместе эти данные приведут к результатам, которые вы сообщаете. –

+0

Простой тест, который вы можете выполнить, составляет ваш шаблон ' TEST'. Если вы не видите текст «TEST» на выходе, ваш шаблон не будет выполнен: либо потому, что он не соответствует чему-либо на входе, либо потому, что он не применяется к элементу 'description'. –