【发布时间】:2013-06-21 23:31:23
【问题描述】:
请先原谅我的英语...... :)
我将XMLNS 用于HTML 标签并将它们定位在JS 和getElementsByTagNameNS 并使用CSS 选择器xmlns\:tagName 用于CSS 文档,在服务器端我使用DOM PHP 对象 DOMDocument::getElementsByTagNameNS...
我想知道我做得好还是有有效的方法?这种逻辑可能会在将来给我带来问题吗?我不知道 ex: DRUPAL 或 JOOMLA 是如何管理的?
或者你认为我应该在 PHP 中使用 regexp 和 preg_match_replace 在任何 HTML 属性中添加前缀,并在 JS 文件和 CSS 文件中做同样的事情?
结构
actor
|
|
v
+--------------+ +--------------------------------+
| NPresenter | | NNamespace |
+-------+|--------------|+------->|--------------------------------|
| |--------------| |--------------------------------|
| | -display(); | | +full_qualified_js_name(); |
| +--------------+ | +full_qualified_less_name(); |
| | +full_qualified_layout_name(); |
| +--------------------------------+
v
+------------------+ (assets)
| NModel | +------------+
|------------------| | js |
|------------------|------------------------->| less |
| +file_content(); | | layout |
+----------------- + +------------+
fully_qualified_*_name() 使用 regexp 和 preg_match_all 返回目标文件的输出,我在布局文件中添加 XMLNS,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns:aa='zz' xmlns:ee='rr'>
<head>
<title></title>
<script src="/assets/js/appended_js.js"></script>
<LINK rel="stylesheet" type="text/css" href="/assets/js/appended_css.css"">
</head>
<body>
<aa:span id="span1">
<aa:p>aaa</aa:p>
</aa:span>
<ee:span id="span1">
<ee:p>aaa</ee:p>
</ee:span>
</body>
</html>
在较少的文件中,我喜欢以下内容:
/*less*/
aa\:span{background: #00ff00;}
在 js 文件中我喜欢如下:
/*js*/
var Namespace = {
methode1: function() {
var target = document.getElementsByTagNameNS("aa","zz");
return target.length;
}
};
【问题讨论】:
-
您可能应该添加一个示例演示代码,以便清楚您实际在做什么。我不确定你问的是不是一些小错误,所以举一些例子,这会变得更清楚。
-
@hakre 感谢您的反应,我只是发布更多详细信息,如果不清楚请询问...
-
+1 仅用于编辑,现在更清楚了。
-
所以唯一让我感到不快的是您正在使用 preg_replace 插入命名空间。你为什么不用 DOM 来做呢?
-
啊,好吧,我不知道 DOM 有命名空间方法,你的意思是 DOMDocument::createElementNS,我只是在 [link]php.net/manual/en/domdocument.createelementns.php) 中看到它,谢谢,我会测试它...
标签: php dom architecture xhtml xml-namespaces