- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
好吧,也许我漏掉了一些简单的东西。我一直在寻找很长一段时间,但没有运气。我需要将实体插入到 XML 属性中。为此,我需要能够将符号 (&) 与 DOM 类的 setAttribute
方法(或 simpleXML 的
类)。当我尝试使用它时,它转义了符号,所以 addAttribute
方法结合使用&entity;
变成了 &entity;
。尝试手动转义符号 \&entity;
只会导致 \&entity;
。键入 & 实体 &entity;
只是将其加倍 &entity;
。我明白它为什么这样做,如果不与有效实体关联,& 符号将破坏 XML。问题是,它与一个实体相关联,我不知道如何使用它。
我找到了 createEntityReference和 DOMEntityReference方法,但这些方法的文档很差,我不确定这些是否是我需要的。谷歌搜索这些术语似乎只能调出相同的 PHP 文档,但来自不同的站点。我已经尝试单独搜索这个问题,但我得到的结果解释了我已经知道并在上面指出的内容。我试过 DOM 和 SimpleXML,但都产生了相同的结果。我只是把它复杂化了,还是真的不支持它?
最佳答案
坦率地说,对我来说这是一个具有挑战性的问题,因为我自己没有想过,虽然答案很简单:
根据 even Level 1 of the DOM recommendation interface Attr
继承了 Node
接口(interface),也就是说你可以将节点附加到一个属性。 EntityReference
允许在 Attr
child 中使用。
In XML, where the value of an attribute can contain entity references, the child nodes of the Attr node provide a representation in which entity references are not expanded. These child nodes may be either Text or EntityReference nodes. Because the attribute type may be unknown, there are no tokenized attribute values.
这是 PHP 中的一个工作示例:
<?php
// a valid XML should contain used entities declarations to be valid,
// but DOM recs do not contain means to generate DTD;
// in PHP you can use XMLWriter for the purpose though
$dtd = <<<DTD
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE root [
<!ENTITY my_entity "some content">
]>
<root/>
DTD;
$xml = new DOMDocument();
$xml->formatOutput = true;
$xml->loadXML($dtd);
$root = $xml->documentElement;
$entity = $xml->createEntityReference( 'my_entity' );
$an_attr = $xml->createAttribute( 'attr' );
$an_attr->appendChild( $xml->createTextNode('prefix ') );
$an_attr->appendChild( $entity );
$an_attr->appendChild( $xml->createTextNode(' suffix') );
$root->setAttributeNode( $an_attr );
// clone the entity to use it more than once
$root->appendChild( $entity->cloneNode() );
print $xml->saveXML();
?>
结果是
C:\>\php\5.3.8\php.exe entities.php
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE root [
<!ENTITY my_entity "some content">
]>
<root attr="prefix &my_entity; suffix">&my_entity;</root>
关于php - setAttribute/addAttribute 中的 XML 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8233394/
request.setAttribute 和 request.getSession().setAttribute() 有什么区别? 它们存储在哪里以及以什么格式? 最佳答案 区别: 当您使用reque
session.setAttribute 和 request.setAttribute 有什么区别? 最佳答案 范围,session属性住所有的session而request属性只在一个请求中 关于j
我一直热衷于重置我的一个 jsp 页面上的一些验证错误。这是一个我无法再联系到的人(死亡或无法联系)继承的项目。我有一个 jsp 页面,其中包含许多自定义标记库,其中更多页面被添加为选项卡,父页面具有
当您从请求和 getServletContext() 调用它们时,get/setAttribute() 之间有什么区别。我注意到你需要 RequestDispatcher rd = request.g
所以我正在学习操作 DOM,并且我注意到一件有趣的事情: 假设我想使用“.”设置元素的 name 属性。点符号: element.name = "someName"; console.log(docu
HttpServletRequest类的setAttribute()方法和HttpSession类的setAttribute()方法有什么区别? 在什么情况下使用? 最佳答案 一个在请求范围内设置一个
为什么我们要使用setAttribute()方法来设置ServletContext参数,因为我们可以通过在web.xml中设置参数并使用getInitParameter()来获取它们来完成相同的工作?
我在 setAttribute() 方面遇到问题。我已经搜索过互联网和这个网站,但他们没有解决我的问题。我想用 javascript 更改图片的宽度和高度,但它不起作用。请帮助我。
在学校,我的老师将我的代码更改为下面的示例它不起作用,我无法理解它是如何工作并修复它的。 function _$(e, attrs) { var el = document.createEle
我有三个元素,我正在尝试为每个元素设置属性: const foldable = document.getElementsByClassName('foldable') let result = Arr
我正在尝试使用 object3D.lookAt 属性更改图像的视角。目前我正在尝试使用组件的 update() 方法更改图像的方向。这是通过更新我的组件的 Lookat 属性来实现的。 functio
我有一些有效的 SVG 代码,可以通过在形状上设置属性来处理鼠标事件: function plot() { ... shape.setAttributeNS(null, "onmouseove
我使用的表单会根据您单击单选按钮的选项来显示一些 div。 问题是 div 设置为不显示,除非我选择一个选项。 所以我添加了以下函数,以确保如果显示 div,它将具有具有所需属性的形式。 所以我给出这
此代码嵌套在 ascx 控件中。 onclientclick 事件有效并且没有错误,但标签文本没有更改?我错过了什么?
同样,我在使用 setAttribute 时遵循我的引用书和在线引用:它根本不起作用; HTML:
这是一些 HTML: lorem Lorem, ipsum dolor sit amet consectetur adipisicing elit. Eaque magnam expedit
我一直在以不同的方式创建元素,但不确定最佳方法。有什么区别: var myselect = document.createElement("select"); myselect.name="blah"
这里我稍微修改了代码 https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_doc_getelementsbyname_loop 来自
我在为另一个元素设置属性时遇到问题。 我正在使用带有 JS 和 HTML 的 PHP 代码,它看起来像: $value 你一定知道我有两个元素。我用于编写文本的第一个('content')和另一个('
我是 Javascript 的新手,我不知道如何在选定的选项上使用 setAttribute。 我的 html 中有一个 id = employee 的 select 元素(使用 javascript
我是一名优秀的程序员,十分优秀!