- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用 SimpleXML 的 SimpleXMLElement(实际上是 SimpleXMLIterator,它是 SimpleXMLElement 的子类)的 addChild 方法来添加子元素。
我的问题是源文档混合了带命名空间和不带命名空间的元素。这是一个简单(没有双关语意)的例子:
<?xml version="1.0" encoding="UTF-8"?>
<ns1:a xmlns:ns1="http://www.abc.com">
</ns1:a>
PHP代码是:
$it = new SimpleXMLIterator ('./test.xml', 0, true);
$it->addChild('d', 'another!'); // adds new child element to parent's NS
$it->addChild('c', 'no namespace for me!', ''); // puts xmlns="" every time :(
//output xml in response:
header('Content-Type: text/xml');
echo $it->saveXML();
问题 - 如评论所述 - 是如果我想在具有 namespace 的父元素内放置一个没有 namespace 的子元素,我每次都会得到一个空的 XML namespace 属性(上述 PHP 代码的输出):
<?xml version="1.0" encoding="UTF-8"?>
<ns1:a xmlns:ns1="http://www.abc.com">
<ns1:d>another!</ns1:d>
<c xmlns="">no namespace for me!</c>
</ns1:a>
虽然网络浏览器和 XML 解析器(例如 Xerces)似乎都不介意这种多余的标记,但我觉得有点烦人,因为我似乎无法告诉它停止这样做。
有人有解决方案还是我 react 过度了?
:
最佳答案
对于 SimpleXML,c 需要一个命名空间。如果您指定一个,它会获得一个 xmlns 属性,因为您指定的内容之前没有声明过。如果不为c指定命名空间,它会继承父节点的命名空间。这里唯一的选择是 ns1
. (这发生在 d.)
为防止继承父命名空间和省略空xmlns
你需要一个类似 xmlns="http://example.com"
的命名空间在父级。然后 $it->addChild('c', 'no ns', 'http://example.com')
给你<c>no ns</c>
.
但是你不能注入(inject)额外的命名空间,例如与 addAttribute
.在 SimpleXML 解析输入文件之前,您必须对其进行操作。对我来说,这似乎比从输出中删除所有空的 xmlns 属性更难看。
关于PHP SimpleXML->addChild - 不需要的空命名空间属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4672274/
添加子节点时,如何根据其兄弟节点选择它的位置? 这是一个例子:
谁能帮助我插入 highscoreLabel,我一直在产生错误,我已经考虑将代码移动到 viewDidAppear 和 viewDidLoad。 我刚开始使用 swift,所以如果有人能提供帮助那就太
我正在使用下面的脚本将输入字段中的文本添加到 XML 文件。我对在列表顶部添加一个元素感到困惑,也许是 firstChild?因为每当 PHP 发布输入字段中的文本时,它会将它添加到 XML 树的底部
我有一个问题。 我制作了 swift 自定义类 test.swift 并想将此类中的 Sprite 添加到 GameScene.swift 这是我的自定义类 import SpriteKit impo
我正在尝试添加 在页面加载后( " ),但它不起作用。我做错了什么? 这是脚本本身: function random() { var points = Math.floor((Math.ran
我是编码和 AS3 的新手。我正在阅读有关使用 AS3 向舞台添加内容的内容,并了解了 addChild 方法。阅读更多我发现有不同的使用方法。我还读到有些方法比其他方法更好,有些方法根本不好,最好避
我正在使用 Cocos3D。我有一个不同的 CC3Node 列表。我想在每个图片旁边放一张图片。我的问题是:如何创建一个新的 CC3Node 并将其添加为子节点。 最佳答案 你需要做这样的事情: CC
我有一个排序游戏,其中有 10 个元素可以按正确的顺序拖放。 当我开始拖动一个对象时,我希望它出现在所有其他对象的前面。由于 createjs 没有 zindex 属性,我被告知要使用 stage.a
当我在另一个 View Controller 中添加 ViewController 时,我应该 addChild,没有这个,它不起作用 @objc func openMenuHandler() {
在 Swift 中,我有一些这样的代码: let wand = SKSpriteNode(imageNamed: "Wand") let item = SKSpriteNode(imageNamed:
第一次编码,我想我会从使用 Spritekit (Swift 3) 的游戏开始。我遇到了一个问题,当我向场景添加 Sprite 节点时,它会复制它。我还应该提到我这样做是作为一个重复出现的功能,我随机
请耐心等待,因为我是 OOP/ObjC/Cocos2d 的新手。 我有一个像这样每秒触发的方法:[self schedule:@selector(eyelidsBlink:) interval:1.0
我在这里发现了很多关于这个问题的问题,但我仍然不知道如何在我的情况下解决它。现在我创建了一个新的 html 文件,其中只有以下代码: window.onload = function() {
我正在尝试构建一个小型简历生成器。我希望用户能够输入任意数量的电话号码。但是,appendChild() 没有按预期工作。事实上,它根本不起作用。它什么也不做。有什么想法吗? HTML:
我有两个顶级的 QTreeWidgetItem。我想让第二个成为第一个的父级。调用第一个的 addChild(second item) 显示没有变化。我将如何做到这一点? 最佳答案 您可能必须首先使用
我有一个简单的类函数,用于在许多不同的场合添加 SKEmitterNode。 发生异常时我无法重现步骤。它很少发生而且很随机。我可以调用此方法 500 次而不会出错,或者在某些情况下,调用 1 次或
我正在尝试使用 SimpleXML 的 SimpleXMLElement(实际上是 SimpleXMLIterator,它是 SimpleXMLElement 的子类)的 addChild 方法来添加
这是一个愚蠢的问题,但是函数 self.addChild() 做了什么? 我很熟悉这个函数,也很熟悉如何使用它,但我不确定它把 child 添加到什么地方。 例如,我创建并设计了一个名为 spinny
import SpriteKit class GameScene: SKScene { let player = SKSpriteNode(imageNamed: "Gun")
在我的 php 代码中,我有两个变量 $parent 和 $child。他们都有一些 xml 数据。在 $parent 变量中有一个名为 的标签,它可能包含多个 标签。在 $child 变量中只有
我是一名优秀的程序员,十分优秀!