使用Java,我想采用以下格式的文档:
<tag1>
<tag2>
<![CDATA[ Some data ]]>
</tag2>
</tag1>
Run Code Online (Sandbox Code Playgroud)
并将其转换为:
<tag1><tag2><![CDATA[ Some data ]]></tag2></tag1>
Run Code Online (Sandbox Code Playgroud)
我试过以下内容,但它并没有给我我期待的结果:
DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
dbfac.setIgnoringElementContentWhitespace(true);
DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
Document doc = docBuilder.parse(new FileInputStream("/tmp/test.xml"));
Writer out = new StringWriter();
Transformer tf = TransformerFactory.newInstance().newTransformer();
tf.setOutputProperty(OutputKeys.INDENT, "no");
tf.transform(new DOMSource(doc), new StreamResult(out));
System.out.println(out.toString());
Run Code Online (Sandbox Code Playgroud) 有没有办法在scala的cdata部分中放置一个变量
val reason = <reason><![CDATA[ {failedReason} ]]></reason>
Run Code Online (Sandbox Code Playgroud) 我的Android项目中有一个字符串资源,我使用CDATA部分将我的字符串嵌入XML:
<string name="ackng"><![CDATA[
<html>
<body>
<h1>Acknowledgements</h1>
<p>
Senator Paul Wellstone's book, the Conscience of a Liberal: Reclaiming the
compassionate agenda was an inspiration and an affirmation that you can be truthful
and honest as a politician, and compassionate and people-centred as a representative.
And as President Bill Clinton affirmed as he addressed the joint session of the
National Assembly on 26th August, 2000, thus:
“Every nation that has struggled to build democracy has found that success
depends on leaders who …Run Code Online (Sandbox Code Playgroud) 我怎样才能删除(//<![CDATA[ , //]]>)块; script元素内的标签.
<script type="text/javascript">
//<![CDATA[
var l=new Array();
..........................
..........................
//]]>
</script>
Run Code Online (Sandbox Code Playgroud)
看起来它可以完成,preg_replace()但还没有找到适合我的解决方案.
我会用什么正则表达式?
我有以下结构:
type XMLProduct struct {
XMLName xml.Name `xml:"row"`
ProductId string `xml:"product_id"`
ProductName string `xml:"product_name"`
OriginalPrice string `xml:"original_price"`
BargainPrice string `xml:"bargain_price"`
TotalReviewCount int `xml:"total_review_count"`
AverageScore float64 `xml:"average_score"`
}
Run Code Online (Sandbox Code Playgroud)
我用它encoding/xml来编码,然后在网页上显示它.
该ProductName字段需要附上<![CDATA[]].但是如果我把它写成<![CDATA[ + p.ProductName + ]]>的<,并>会被翻译成<和>.
如何CDATA以最低成本创建?
我有一点XML如下:
<section>
<description>
<![CDATA[
This is a "description"
that I have formatted
]]>
</description>
</section>
Run Code Online (Sandbox Code Playgroud)
我正在使用它,curXmlNode.SelectSingleNode("description").InnerText但值返回
\r\n This is a "description"\r\n that I have formatted代替
This is a "description" that I have formatted.
有没有一种简单的方法从CDATA部分获得那种输出?离开实际的CDATA标签似乎让它以同样的方式返回.
我经常看到人们在这里询问与XML/XSLT相关的问题,这些问题源于无法掌握CDATA如何工作(就像这一个).
我想知道 - 为什么它首先存在?如果没有它就不能没有XML,你可以放入CDATA部分的所有内容都可以表示为"本机"(XML-escaped).
我很欣赏CDATA可能会使得到的文档变得更小,但让我们面对它 - 无论如何XML都是冗长的.例如,通过压缩可以更轻松地实现小型XML文档.
对我来说,CDATA打破了标记和数据的清晰分离,因为你可以在肉眼看到标记的数据,我觉得这是件坏事.(这甚至可能是鼓励人们不充分地将字符串处理或正则表达式应用于XML的事情之一.)
那么:有什么好的理由可以使用CDATA?
我有时会注意到包含<![CDATA[和]]>标签的CSS或JS代码.我找不到任何解释.CDATA做什么?为什么有些人使用它以及它需要什么?
如何使用CDATA准备XML,
我通过Jaxb预先做出这个回应,
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<SOAP-ENV:Header/>
<soapenv:Body>
<tem:RequestData>
<tem:requestDocument>
<![CDATA[
<Request>
<Authentication CMId="68" Function="1" Guid="5594FB83-F4D4-431F-B3C5-EA6D7A8BA795" Password="poihg321TR"/>
<Establishment Id="4297867"/>
</Request>
]]>
</tem:requestDocument>
</tem:RequestData>
</soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)
但是从Jaxb我没有得到CDATA,如何把CDATA放在<tem:requestDocument>元素中.
这是我的Java代码:
public static String test1() {
try {
initJB();
String response = null;
StringBuffer xmlStr = null;
String strTimeStamp = null;
com.cultagent4.travel_republic.gm.Envelope envelope = null;
com.cultagent4.travel_republic.gm.Header header = null;
com.cultagent4.travel_republic.gm.Body body = null;
com.cultagent4.travel_republic.gm.RequestData requestData = null;
com.cultagent4.travel_republic.gm.RequestDocument requestDocument = null;
com.cultagent4.travel_republic.gm.RequestDocument.Request request = null;
com.cultagent4.travel_republic.gm.RequestDocument.Request.Authentication authentication = null;
com.cultagent4.travel_republic.gm.RequestDocument.Request.Establishment establishment …Run Code Online (Sandbox Code Playgroud) 请有人请帮我一个XML输出模板.我被客户端请求创建一个xml输出文件.然后,此文件将输入客户的CRM.这就是为什么,它必须与客户要求的模板完全匹配.我已经设法将它与CDATA完美匹配,用于几个领域.
以下是您可以用于测试目的的查询.我需要CDATA包装字段客户端和区域.我还通过在代码下运行来附加我得到的输出
If OBJECT_ID('tempdb..#Temp') is Not NULL
Drop table #Temp
CREATE TABLE #Temp
(
[ShiftDate] [date] NULL,
[Ref_Num] [varchar](20) NULL,
[Agency_Worker_Name] [varchar](100) NULL,
[Client] [varchar](100) NULL,
[Area] [VarChar] (100) Null,
[Assignment] [varchar](20) NULL,
[Contract_Start] [varchar](30) NULL,
[Contract_End] [varchar](30) NULL,
[Contract_BreakInMinutes] [varchar](10) NULL,
[Contract_Total] [varchar](30) NULL,
[Actual_Start] [varchar](30) NULL,
[Actual_End] [varchar](30) NULL,
[Actual_BreakInMinutes] [varchar](10) NULL,
[Actual_Total] [varchar](30) NULL,
[Commission] [decimal](18, 2) NULL,
[Total_Cost] [decimal](18, 2) NULL,
[Rate] [varchar](20) NULL,
[OverallCost] [decimal](18, 2) NULL,
[AgencybackingReport] [int] NULL,
[AccountCode] [varchar](20) NULL
)
Insert …Run Code Online (Sandbox Code Playgroud)