Добавить атрибут или содержимое узла на страницу DOM - PullRequest
0 голосов
/ 07 октября 2011

У меня есть набор элементов xml, таких как:

<item code="<HTML_CODE>" />

Например:

<items>
    <item code='<a href="http://google.com">Google</a>' />
    <item code='<a href="http://google.com">Google</a>' />
</items>

Все специальные символы в атрибуте кода экранированы (<- <,> - & rt;и т. д.) Есть ли способ добавить содержимое атрибутов кода на страницу DOM и представить его в виде html?Я имею в виду, что в случае с моими примерами мне нужны две гиперссылки на странице.

ОБНОВЛЕНИЕ

У меня есть:

<?xml version='1.0' encoding='utf-8'?>
<root>
<materials>
<items>
<item project_id="3" code="&lt;a href=&quot;http://google.com&quot;&gt;Text&lt;/a&gt;" txt_id="text1" text="&#171;&#1050;&#1086;&#1088;&#1086;&#1083;&#1077;&#1074;&
#1089;&#1090;&#1074;&#1086;&#187; &#8212; &#1073;&#1088;&#1072;&#1091;&#1079;&#1077;&#1088;&#1085;&#1072;&#1103; &#1088;&#1086;&#1083;&#1077;&#1074;&#1072;&#1103; &#1086;&#1085;&#1083;&#1072;&#1081;&#1085;-&#1080;&#1075;&#1088;&#1072;" />
<item project_id="3" code="Texttextetx" />
</items>
</materials>
</root>

Мне нужно:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
...anything here..
</head>
<body>
<a href="http://google.com">Text</a>
Texttextetx <!-- I know, this is bad but this is example-->
</body>

Ответы [ 3 ]

0 голосов
/ 07 октября 2011
<item project_id="3" code="&lt;a href=&quot;http://google.com&quot;&gt;Text&lt;/a&gt;" txt_id="text1" text="&#171;&#1050;&#1086;&#1088;&#1086;&#1083;&#1077;&#1074;& 
#1089;&#1090;&#1074;&#1086;&#187; &#8212; &#1073;&#1088;&#1072;&#1091;&#1079;&#1077;&#1088;&#1085;&#1072;&#1103; &#1088;&#1086;&#1083;&#1077;&#1074;&#1072;&#1103; &#1086;&#1085;&#1083;&#1072;&#1081;&#1085;-&#1080;&#1075;&#1088;&#1072;" /> 
<item project_id="3" code="Texttextetx" /> 

Значение атрибута по определению не может быть узлами - это просто строка.Таким образом, вышеприведенный атрибут href вообще не содержит никакой разметки - он содержит уничтоженную разметку.

Такая строка не может быть немедленно использована XSLT / XPath - она ​​должна сначала анализироваться XMLparser.

Итак, если вам нужно обработать это с помощью XSLT, код xslt должен использовать функцию расширения, которая будет анализировать значение атрибута href и вернет набор узлов.

Как мы видим снова и снова, глупо и вредно пытаться помещать разметку в атрибут - это только разрушает ее.

0 голосов
/ 14 ноября 2011
<xsl:value-of select="XPATHQUERY" disable-output-escaping="yes" />
0 голосов
/ 07 октября 2011

Я думаю, что это должно сделать это. в JQuery

$('item').each(function(){
     $("#receiving_div").append($(this).attr('code'));
})

Однако не имеет ли больше смысла просто возвращать HTML, а не оборачивать HTML в XML? В любом случае они оба просто языки разметки ...

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