标签: cdata

如何将<xsl:foreach>拆分为多个部分?

我有一个元素列表,我想分成3个单独的列表.最终结果将是这样的:

<ul>
    <li>element</li>
    <li>element</li>
</ul>
<ul>
    <li>element</li>
    <li>element</li>
</ul>
<ul>
    <li>element</li>
    <li>element</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我的XSLT是这样的,但它不起作用,因为我无法插入</ul>,并且我无法插入小于sign(<).

<ul>
    <xsl:for-each select="$myroot/item">
        <li></li>

        <xsl:if test="position() mod $maxItemsPerColumn = 0">
            <!-- I want to close my ul, and start a new one here, but it doesn't work! -->
        </xsl:if>
    </xsl:for-each>
</ul>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?提前致谢!

xml xslt cdata

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

如果Statement不与And(&&)运算符一起使用

我很难写出看似简单的if语句!我需要它说,如果mod不等于a,b或c - 那么这样做.这是我尝试但未成功的原因:

var mod = CURRENT_MODULE_ID;
if (mod != "5827289" && mod != "5195103" && mod != "5181422") {
   doSomething();
}
Run Code Online (Sandbox Code Playgroud)

当我在编辑器中键入它时,它表示存在错误,特别是"实体名称必须紧跟实体引用中的'&'." ..当我去测试时,它不起作用.

任何帮助表示赞赏!!


更新:网址:esber.squarespace.com

完整的脚本:

<script type="text/javascript" src="/storage/scripts/sessvars.js"></script>
<script type="text/javascript">
<![CDATA[ 

onload=function(){
 sessvars.browserConfirmation?'none':'';
 sessvars.ageConfirmation?'none':'';
}; 

var mod = Squarespace.Constants.CURRENT_MODULE_ID;
if (mod != "5827289" && mod != "5195103" && mod != "5181422") {
   if(sessvars.ageConfirmation != "yes"){
      window.location = "/verify/";
   };
};

]]>
</script> 
Run Code Online (Sandbox Code Playgroud)

我希望网站中的每个页面都自动将页面加载重定向到验证页面,除非它是验证页面(/ verify),"您未验证"页面(/未验证)或登录页面(/登录) - 除非用户已通过设置sessvars进行验证,否则他们可以继续访问主页.

为了测试这个,我去esber.squarespace.com并点击右边的一个菜单项(这个菜单最终会在我完成页面时被隐藏) - 当我尝试去另一个页面时没有验证我的年龄首先我应该被重定向回/验证页面,但这不会发生.

如果我修改脚本:

<script type="text/javascript" src="/storage/scripts/sessvars.js"></script>
<script type="text/javascript">

onload=function(){
 sessvars.browserConfirmation?'none':'';
 sessvars.ageConfirmation?'none':''; …
Run Code Online (Sandbox Code Playgroud)

javascript cdata content-management-system logical-operators squarespace

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

创建CDATA部分令人困惑

我试图在描述字段中创建CDATA部分,但失败了.代码非常简单,但在生成的XML中没有出现CDATA部分!

Node de = document.createElement("description");
de.appendChild(document.createCDATASection(reportData.getIssue().getDescription() + "more]]>data"));
e.appendChild(de);
Run Code Online (Sandbox Code Playgroud)

在结果XML中,我得到:

<description>Room #1128 has AD issues.more]]&gt;data</description>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?!

java xml cdata

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

如何在iPad中解析XML文件时处理CDATA标记

我正在开发一个应用程序,我需要解析一些包含CDATA标记的XML文件.解析普通的xml非常简单,但我遇到了检索CDATA标记内的数据的问题.

parser:foundCDATA:正在为参数CDATABlock为NSData类型时遇到的每个CDATA标记调用该方法.

请建议一种解析CDATA标记的方法.

xml iphone objective-c cdata ipad

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

通过DOM解析器从XML处理CDATA

我以前从未处理过XML,所以我不确定如何在XML文件中处理CDATA.我迷失在节点,父节点,子节点,nList等中.

谁能告诉我这些代码片段的问题是什么?

我的getTagValue()方法适用于除"详细信息"之外的所有标记,"详细信息"是包含CDATA的标记.

.....
NodeList nList = doc.getElementsByTagName("Assignment");
for (int temp = 0; temp < nList.getLength(); temp++) {
    Node nNode = nList.item(temp);
    if (nNode.getNodeType() == Node.ELEMENT_NODE) {
        Element eElement = (Element) nNode;
        results = ("Class : " + getTagValue("ClassName", eElement)) + 
                  ("Period : " + getTagValue("Period", eElement)) +
                  ("Assignment : " + getTagValue("Details", eElement));
        myAssignments.add(results);
    }
}
.....
private String getTagValue(String sTag, Element eElement) {
    NodeList nlList = eElement.getElementsByTagName(sTag).item(0).getChildNodes();

    Node nValue = (Node) nlList.item(0);
    if((CharacterData)nValue instanceof CharacterData)
    { …
Run Code Online (Sandbox Code Playgroud)

java xml dom cdata

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

nodejs使用cheerio解析xml返回空CDATA

我在nodejs中使用cheerio来解析一些rss feed.我抓住所有将它们放入阵列的物品.我使用3个测试源,它们都为每个"item"元素都有一个"description"子元素.在其中一个Feed中,整个"描述"被包装为CDATA,我无法获得它的价值.这是一个缩写的代码片段

//Open the xml document with cheerio
$ = cheerio.load(arrXmlDocs[i],{ ignoreWhitespace : true, xmlMode : true});

//Loop through every item
$('item').each(function(i, xmlItem){

    //array to hold each item being converted into an array
    var tempArray = [];

    //Loop through each child of <item>
    $(xmlItem).children().each(function(i, xmlItem){
        //Get the name 
        tempArray[$(this)[0].name] = $(this).text();
    }

}
Run Code Online (Sandbox Code Playgroud)

正如所料,没有CDATA的两个RSS提供给我一个像这样的数组

[
    [
        name: 'name of episode',
        description:'description of episode',
        pubdate: 'published date'
    ],
    [
        name: 'name of episode',
        description:'description of episode',
        pubdate: 'published date'
    ]
] …
Run Code Online (Sandbox Code Playgroud)

javascript xml cdata node.js cheerio

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

JSF 2.2 CDATA 被转义

升级到 Mojarra 2.2.3 后,我发现了一些奇怪的行为。以下 Javascript 声明被破坏:

在 .xhtml 文件中:

<script type="text/javascript">
<!-- /* <![CDATA[ */
    $(document).ready(function() {                                                                             
        if ($('#some_identifier').size() > 0) 
        ...
/* ]]> */-->
</script>
Run Code Online (Sandbox Code Playgroud)

这被混淆成以下废话:

<script type="text/javascript">
<!-- /* &lt;![CDATA[ */
    $(document).ready(function() {
        if ($('#some_identifier').size() &gt; 0)
        ...
/* ]]&gt; */-->
</script>
Run Code Online (Sandbox Code Playgroud)

这会破坏 .xhtml 文件中嵌入的所有 javascript 代码。我确认我们之前使用的版本 (2.0.x) 不会发生这种情况,所以我必须假设它与新的 Mojarra 版本有关。关于如何解决此问题或解决此问题的任何想法?

facelets cdata jsf-2 jsf-2.2

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

java将cdata添加到xml字符串

我需要将CDATA添加到xml字符串以便使用证书进行签名.

字符串看起来像:

<SignedContent>someparametres</SignedContent>
Run Code Online (Sandbox Code Playgroud)

结果必须如下:

<![CDATA[<SignedContent>someparametres</SignedContent>]]>
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?请帮忙

PS Xml字符串只有一行(删除所有选项卡,所有空格,BOM)

java xml cdata

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

如何按节点类型获取XML :: LibXML中的子节点?

我正在解析复杂的XML文档,一个部分可能如下所示:

<mds>
  <md>
    <value>
      <![CDATA[<?xml version="1.0" encoding="UTF-8"?><record>...</record>]]>
    </value>
  </md>
</mds>
Run Code Online (Sandbox Code Playgroud)

当我解析值节点时,它实际上包含3个子节点,两个空节点和一个cdata节点.有没有办法轻松获得cdata节点,比如

my @dcvalues = $dom->findnodes("//mds/md/value");
my @cdatanodes = $dcvalues[0]->find(<some xpath that only returns cdata nodes>);
my $cdataval = $cdatanodes[0]->textContent;
Run Code Online (Sandbox Code Playgroud)

你明白了.编辑:我知道我可以在这个例子中访问cdata

my $cdatanode = $dcvalues[0]->firstChild->nextSibling;
Run Code Online (Sandbox Code Playgroud)

但后来我依赖cdata始终是第二个节点,我不确定.

perl cdata libxml2 xml-parsing

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

使用BeautifulSoup提取CData

我正在尝试使用bs4/Python 3中的BeautifulSoup来提取CData.但是,每当我使用以下内容搜索它时,它都会返回一个空结果.谁能指出我做错了什么?

from bs4 import BeautifulSoup,CData

txt = '''<foobar>We have
         <![CDATA[some data here]]>
         and more.
         </foobar>'''
soup = BeautifulSoup(txt)
for cd in soup.findAll(text=True):
    if isinstance(cd, CData):
        print('CData contents: %r' % cd)
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup cdata python-3.x

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