我正在寻找一种方式,json解析将按原样获取信息(就好像它是CDATA) - 而不是尝试序列化它.我们使用.net和java(客户端和服务器) - 所以答案应该是关于JSON结构有没有办法实现这个结构?
谢谢.
似乎PCDATA和CDATA的松散定义就是这样
但后来有人告诉我CDATA实际上已被解析或者PCDATA实际上没有被解析...所以这有点混乱.有谁知道真正的交易是什么?
更新:我实际上在维基百科上添加了PCDATA定义...所以不要太认真地回答这个问题,因为这只是我对它的粗略理解.
不幸的是,HTML中没有CDATA.
这很遗憾,因为它非常适合添加javadoc包含XML的注释,因此您不必转义<和>,例如:
/**<![CDATA[ This parses <complexType name=""> ]]>*/
Run Code Online (Sandbox Code Playgroud)
但是,可以javadoc识别CDATA部分,并将其转换为HTML.例如:
This parses <complexType name="">
Run Code Online (Sandbox Code Playgroud)
或者它可以使用比CDATA更简单的语法.因为javadoc是可扩展的,所以有可能有人添加了这个功能; 或者可能javadoc已将它埋在某处...有人知道吗?
我有这种困难的情况,我需要在另一个CDATA标签内使用CDATA标签.但情况很容易解释.
我有以下的事情:
<edit>
<![CDATA[
<script type="text/javascript">
<![CDATA[
window.onload = function()
{
document.getElementById('block').onclick = function()
{
this.onclick = '';
this.value = '{LA_SEND_CONFIRM}';
this.className = this.className.replace('button1','');
document.getElementById('replacement').value = '{LA_BLOCK_CODE}';
}
}
]]>
</script>
]]>
</edit>
Run Code Online (Sandbox Code Playgroud)
我需要将我的Javascript包装在CDATA中以用于显示目的,因此当我打开该XML文件时,它会正确显示并且Javascript代码位于这些CDATA标记内.它们在XML文件本身内没有任何实际意义.
如您所知,上面的代码会给我一个XML解析错误,因为嵌套CDATA不起作用.有没有办法逃脱,]]>所以我可以向我的用户显示这些括号?
我希望我很清楚.
我在JSF页面中遇到了ajax请求的问题.当我点击按钮时,我得到以下异常:
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
java.lang.IllegalStateException: CDATA tags may not nest
at com.sun.faces.renderkit.html_basic.HtmlResponseWriter.startCDATA(HtmlResponseWriter.java:630)
at javax.faces.context.ResponseWriterWrapper.startCDATA(ResponseWriterWrapper.java:172)
at javax.faces.context.PartialResponseWriter.startError(PartialResponseWriter.java:342)
at org.primefaces.context.PrimePartialResponseWriter.startError(PrimePartialResponseWriter.java:210)
at com.sun.faces.context.AjaxExceptionHandlerImpl.handlePartialResponseError(AjaxExceptionHandlerImpl.java:200)
at com.sun.faces.context.AjaxExceptionHandlerImpl.handle(AjaxExceptionHandlerImpl.java:123)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:119)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
Run Code Online (Sandbox Code Playgroud)
我认为这是String对象的一些问题,因为当我对网站上显示的JPA实体属性进行硬编码时,一切都还可以.但是,当从数据库(PostgreSQL)中检索实体时,它会抛出上述异常.
JSF代码:
<p:column>
<f:facet name="header">
Akcja
</f:facet>
<h:commandButton actionListener="#{mBDocumentMigration.actionEdit(object)}" value="Edytuj" rendered="#{mBDocumentMigration.editingObject == null}" >
<f:ajax render="@form" execute="@form" />
</h:commandButton>
<h:commandButton action="#{mBDocumentMigration.actionZapisz}" value="Zapisz" rendered="#{mBDocumentMigration.editingObject != null}" >
<f:ajax render="@form" execute="@this" />
</h:commandButton>
</p:column>
Run Code Online (Sandbox Code Playgroud) 我想在不转义特殊字符的情况下将脚本或CSS内联到XHTML中.
我可以使用CDATA标记的部分来做到这一点.
根据http://www.w3.org/TR/xhtml1/#h-4.8,CDATA部分可以定义为:
<script type="text/javascript">
<![CDATA[
... unescaped script content ...
]]>
</script>
Run Code Online (Sandbox Code Playgroud)
然后,根据http://www.w3schools.com/TAGS/tag_script.asp,CDATA可以看起来像:
<script type="text/javascript"><![CDATA[
// some code
//]]></script>
Run Code Online (Sandbox Code Playgroud)
关闭CDATA部分的哪种方法更好?]]>还是//]]>?
大师,
我是自学成才的.有很多你开明的人称之为基本的,我一无所知.
阅读这个 jQuery教程,我注意到了这个标签(缺少更好的单词):"CDATA"如此处所示(从顶部开始的第三行):
<script src="http://jquery.com/src/jquery-latest.js"></script>
<script>
//<![CDATA[
$(document).ready(function(){
$(".article .thebody").hide();
$("#container .article ul")
.prepend("<li class='readbody'><a href='' title='Read the article'>Read Body</a></li>");
$(".actions li.readbody a").click(function(event){
$(this).parents("ul").prev(".thebody").toggle();
event.preventDefault();
});
});
//]]></script>
Run Code Online (Sandbox Code Playgroud)
CDATA是什么意思?有没有类似CDATA的标签?
我已经看到了几件事,但到目前为止似乎没有任何工作.我在rails 3 ruby 1.9.2上使用nokogiri通过url解析xml.
xml的片段如下所示:
<NewsLineText>
<![CDATA[
Anna Kendrick is ''obsessed'' with 'Game of Thrones' and loves to cook, particularly creme brulee.
]]>
</NewsLineText>
Run Code Online (Sandbox Code Playgroud)
我试图解析这个以获取与NewsLineText相关联的文本
r = node.at_xpath('.//newslinetext') if node.at_xpath('.//newslinetext')
s = node.at_xpath('.//newslinetext').text if node.at_xpath('.//newslinetext')
t = node.at_xpath('.//newslinetext').content if node.at_xpath('.//newslinetext')
puts r
puts s ? if s.blank? 'NOTHING' : s
puts t ? if t.blank? 'NOTHING' : t
Run Code Online (Sandbox Code Playgroud)
我得到的回报是
<newslinetext></newslinetext>
NOTHING
NOTHING
Run Code Online (Sandbox Code Playgroud)
所以我知道我的标签被正确命名/拼写以获取newslinetext数据,但cdata文本永远不会出现.
我需要用nokogiri来获取此文本?
我正在使用从DB获取的值创建XML文档.有时候由于遗留实现,我会回调一个包含char的值,该值在未正确转义时(例如)无效.
所以问题就变成了,我应该CDATA还是Escape?某些情况对某一种情况更合适吗?
例子:
<Email>foo&bar@domain.com</Email>
Run Code Online (Sandbox Code Playgroud)
我在这里倾向于CDATA.
<Name>Bob & Tom</Name>
Run Code Online (Sandbox Code Playgroud)
我倾向于逃离这里.
我想每次都盲目地避免CDATA',但从性能的角度看,这似乎是合乎逻辑的选择.这总是比寻找一个无效的char更快,如果它存在,那么换行.
思考?
我很难用内部的Cdata读取XML文件.
<list>
<topic>
<topicTitle>Test</topicTitle>
<topicDetail><![CDATA[<br>randomHTMLhere</br>]]></topicDetail>
</topic>
</list>
Run Code Online (Sandbox Code Playgroud)
[xml]$xml = get-content $xmlsource
foreach ($topic in $xml.list) {
$topic.topicTitle
$topic.topicDetail
}
Run Code Online (Sandbox Code Playgroud)
$ topic.topicDetail将为null,而$ topic.topicTitle将不为.有任何想法吗?
cdata ×10
xml ×6
html ×3
java ×2
xhtml ×2
xml-parsing ×2
.net-4.0 ×1
ajax ×1
css ×1
escaping ×1
javadoc ×1
javascript ×1
jquery ×1
jsf ×1
json ×1
nokogiri ×1
pcdata ×1
powershell ×1
primefaces ×1
ruby ×1