标签: cdata

如何在Excel vba中创建CDATA标签?

任何人都可以帮忙吗?

我正在尝试使用 vba 将 Excel 数据转换为 xml 文件。我的 xml 文件看起来像这样,

 <product>
  <info><i>Samsung</i></info>
 </product>
Run Code Online (Sandbox Code Playgroud)

我希望不解析 html 标签。因此尝试使用 vba 中的 createCDATASection 方法在 vba 中添加 cdata

我添加了这样的vba代码

  Set objDom = New DOMDocument
  Set objXMLRootelement = objDom.createElement("Product")
  Set objXMLelement = objDom.createElement("info")
  objXMLRootelement.appendChild objXMLelement
  cdata=objDom.createCDATASection ("<i>Samsung</i>")
  objXMLelement.text=cdata.text
Run Code Online (Sandbox Code Playgroud)

我希望我的 xml 文件看起来像这样,当在记事本中查看视图源时,它应该将
“<”显示为“<”,而不是“<”

  <product>
    <info><![CDATA[<i>Samsung</i>]]></info>
  </product>
Run Code Online (Sandbox Code Playgroud)

执行我的代码后,它显示如下,

  <product>
   <info><i>Samsung</i></info>
  </product>
Run Code Online (Sandbox Code Playgroud)

但是cdata标签没有出现。不知道原因。并且当在记事本中查看xml文件的源时,“<”符号显示为&符号lt;

有人可以解决这个问题吗?

提前致谢

xml excel vba xmldocument cdata

3
推荐指数
1
解决办法
5321
查看次数

编码]]>在cdata中

如果我正在构建一些XML并使用<![CDATA[...]]>,我如何编码可能包含]]>子字符串的数据?会的]]&gt;吗?我问,因为我一直认为CDATA内容是文字内容.

xml cdata

2
推荐指数
1
解决办法
2270
查看次数

C#:xml CData中的字节数组

我有一个返回xml块的WCF服务.一个元素是CData []部分.我的应用程序从数据库中读取HTML文件,并使用ABCPDF将其转换为PDF byte []数组.然后在我的XmlWriter中将字节添加到CData部分.

问题是生成的xml如下所示:

<![CDATA[System.Byte[]]]>
Run Code Online (Sandbox Code Playgroud)

如何将字符串输入CData部分?我尝试过这样的事情:

string str;
ASCIIEncoding enc = new ASCIIEncoding();
str = enc.GetString(theData);
Run Code Online (Sandbox Code Playgroud)

Convert.ToBase64String(theData);
Run Code Online (Sandbox Code Playgroud)

我卡住!! 任何帮助都会很棒,谢谢!

c# xml bytearray abcpdf cdata

2
推荐指数
1
解决办法
6204
查看次数

在C#中写入XML时,停止输出CDATA标记转义

我们正在创建一个将一些数据输出到XML模式的系统。此架构中的某些字段需要保留其格式,因为最终系统会将其解析为潜在的Word文档布局。为此,我们在<![CDATA[Some formatted text]]>App.Config文件中使用标签,然后将其放入根据架构从xsd.exe生成的类的适当属性字段中。理想情况下,格式化不会出现问题,但是不幸的是,这只是系统的运行方式。

App.Config部分如下所示:

<header>
<![CDATA[Some sample formatted data]]>
</header>
Run Code Online (Sandbox Code Playgroud)

数据分配如下所示:

HeaderSection header = ConfigurationManager.GetSection("header") as HeaderSection;
report.header = "<[CDATA[" + header.Header + "]]>";
Run Code Online (Sandbox Code Playgroud)

最后,Xml输出的处理如下:

xs = new XmlSerializer(typeof(report));
fs = new FileStream (reportLocation, FileMode.Create);
xs.Serialize(fs, report);
fs.Flush();
fs.Close();
Run Code Online (Sandbox Code Playgroud)

从理论上讲,这应该在最终的Xml中产生一个部分,该部分周围包含带有CDATA标记的信息。然而,成角度的支架被转换成&lt;&gt;

我已经研究了禁用Outs Escaping的方法,但是到目前为止只能找到对XSLT工作表的引用。我也尝试过@"<[CDATA["使用琴弦,但还是没有运气。

任何帮助,将不胜感激!

c# xml cdata

2
推荐指数
1
解决办法
2725
查看次数

Xslt生成一些带有CDATA的<name>标签和一些没有的<name>标签?

简介:我正在使用xslt来转换数据,并且需要生成一些带有CDATA的标签和一些没有标签的标签.逃离CDATA部分是唯一的选择吗?

我正在尝试将我已经在xml中的数据转换为Moodle Xml进行导入.最终产品需要包含一些Html,Moodle Xml doc特别说明需要包含在CDATA中.

期望的输出:

<question>
  <name>
    <text>FooName</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<img src="1.png">]]></text>
  </questiontext>
</question>
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码(修剪下来,但将包含我输入的xml文件中的数据):

方法1,没什么特别的

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>

  <xsl:template match="/">
    <question>
      <name>
        <text>FooName</text>
      </name>
      <questiontext format="html">
        <text><![CDATA[<img src="1.png">]]></text>
      </questiontext>
   </xsl:template>

</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

得到了......

方法1的输出错误

<question>
  <name>
    <text>FooName</text>
  </name>
  <questiontext format="html">
    <text>&lt;img src="1.png"&gt;</text>
  </questiontext>
</question>
Run Code Online (Sandbox Code Playgroud)

所以我查看xslt文档一些SO问题,似乎说我有2个选项:

  1. 什么都不做,CDATA逃脱了.
  2. 用于cdata-section-elements ="text"在标记内自动生成cdata部分
  3. 使用,手动生成CDATA部分 disable-output-escaping="yes"

好吧,自动生成听起来不错.让我们尝试:

方法2添加 cdata-section-elements="text"

<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" cdata-section-elements="text"/>
Run Code Online (Sandbox Code Playgroud)

输出错误cdata-section-elements ="text" …

xslt moodle cdata

2
推荐指数
1
解决办法
2937
查看次数

使用JavaScript/jQuery从XML获取HTML

我有一个XML文档,其中包含具有格式良好的HTML内容的标记.我需要使用JavaScript将HTML添加到我的页面中.但是,由于CMS问题,HTML无法使用<![CDATA []]>或其他任何内容进行转义,并且<>必须存在,而不是编码为< >

<submenu>
    <content>
        <div>
            <h3>Hello World</h3>
            <p>Lorem <a href="ipsum.html">ipsum</a></p>
        </div>
    </content>
</submenu>
Run Code Online (Sandbox Code Playgroud)

我使用jQuery来获取XML并将子菜单放入数组中.我能够通过以下方式获取文本:

$(menuArray[n]).find('content').text();
Run Code Online (Sandbox Code Playgroud)

但是,这只会返回"Hello World Lorem ipsum".我需要HTML.不幸的是,jQuerys的.html()方法不适用于XML.

还有其他方法吗?提前致谢.

html xml ajax jquery cdata

2
推荐指数
1
解决办法
5052
查看次数

SimpleXMLElement :: addChild似乎不适用于某些字符串

在prestashop的effiliation插件中,我发现了这段代码:

$values->addChild('marque', '<![CDATA['.$product['manufacturer_name'].']]>');
Run Code Online (Sandbox Code Playgroud)

$product['manufacturer_name']Cyril & Nathalie Daniel输入时,输出是<![CDATA[Cyril,而不是正常情况:<![CDATA[Foo Bar]]>

SimpleXMLElement :: addChild的第二个参数可以包含&吗?我是否必须在制造商名称上使用一些htmlentities?

php xml simplexml cdata

2
推荐指数
1
解决办法
4473
查看次数

Android:xml中的cdata无法正确解析(sax)

我是Android开发新手,我试图创建一个从Web服务中提取xml的应用程序.

除了在Cdata标签中的位之外,所有xml的其余部分都很好,而不是拉入大量的html文本,它会拉入" <p>".有人能指出我正确的方向,为什么它没有正确拉入

这是我的xml

<articles>
   <article>
    <name>AndroidPeople</name>
    <headline>notandroidpeople</headline>
    <website category="android">www.androidpeople.com</website>
    <htmltext><![CDATA[<p>
  HAVING lost to Manchester City and drawn with Manchester United, Yohan Cabaye is confident Newcastle are capable of rounding off a testing treble by beating Chelsea provided they reproduce their
  performance from Old Trafford.
</p>
<p>
  The Magpies drew 1-1 at the weekend, with Demba Ba's penalty a just reward for their efforts even if it owed much to a fortuitous decision from referee Mike Jones.
</p>
<p> …
Run Code Online (Sandbox Code Playgroud)

xml android sax cdata

2
推荐指数
1
解决办法
4194
查看次数

在XSLT(1.0)中将"嵌入式"XML文档转换为CDATA输出

给定一个输入XML文档,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<title> This contains an 'embedded' HTML document </title>
<document>
<html>
<head><title>HTML DOC</title></head>
<body>
Hello World
</body>
</html>
</document>
</root>
Run Code Online (Sandbox Code Playgroud)

如何提取"内部"HTML文档; 将其渲染为CDATA并包含在我的输出文档中?

因此输出文档将是一个HTML文档; 其中包含一个文本框,将元素显示为文本(因此它将显示内部文档的"源视图").

我试过这个:

<xsl:template match="document">
<xsl:value-of select="*"/>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

但这只会呈现文本节点.

我试过这个:

<xsl:template match="document">
<![CDATA[
<xsl:value-of select="*"/>
]]>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

但这逃脱了实际的XSLT,我得到:

&lt;xsl:value-of select="*"/&gt;
Run Code Online (Sandbox Code Playgroud)

我试过这个:

<xsl:output method="xml" indent="yes" cdata-section-elements="document"/>
[...]
<xsl:template match="document">
<document>
<xsl:value-of select="*"/>
</document>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

这确实插入了CDATA部分,但输出仍然只包含文本(剥离元素):

<?xml version="1.0" encoding="UTF-8"?>
<html>
   <head>
      <title>My doc</title>
   </head>
   <body>
      <h1>Title: This contains an 'embedded' HTML document </h1>
      <document><![CDATA[
                                                HTML DOC

                                                                Hello …
Run Code Online (Sandbox Code Playgroud)

html xml xslt cdata

2
推荐指数
1
解决办法
1万
查看次数

如何使用Perl使用TWIG提取CDATA内容

我是Perl的新手,所以我几乎没有使用它的经验,我必须使用以下xml文件中的TWIG和Perl提取CDATA中的内容:

    <?xml version='1.0'  encoding="utf-8"?>
    <text>
    <![CDATA[
    1. Democracia ukata Estado de Derecho sutinchata kamachinaka ch’amanchañataki

    ...
    ]]>
    </text>
Run Code Online (Sandbox Code Playgroud)

对不起,如果这个问题在某处重复.提前致谢.

xml perl parsing cdata xml-twig

2
推荐指数
1
解决办法
773
查看次数

标签 统计

cdata ×10

xml ×9

c# ×2

html ×2

xslt ×2

abcpdf ×1

ajax ×1

android ×1

bytearray ×1

excel ×1

jquery ×1

moodle ×1

parsing ×1

perl ×1

php ×1

sax ×1

simplexml ×1

vba ×1

xml-twig ×1

xmldocument ×1