我使用XML来存储一个小的联系人列表,并尝试编写一个XSL模板,将其转换为CSV文件.我遇到的问题是输出中有空格.
输出:
Friend, John, Smith, Home,
123 test,
Sebastopol,
California,
12345,
Home 1-800-123-4567, Personal john.smith@gmail.com
Run Code Online (Sandbox Code Playgroud)
我缩进/间隔了源XML文件和相关的XSL模板,以便于阅读和开发,但所有额外的空白区域都会进入输出.XML本身在节点内没有额外的空格,只是在它们之外用于格式化,XSLT也是如此.
为了使CSV文件有效,每个条目都需要在它自己的行上,而不是分解.除了从XML和XSLT剥离所有额外的空白区域(使它们只是一行代码)之外,还有另一种方法可以摆脱输出中的空格吗?
编辑:这是一个小的XML示例:
<PHONEBOOK>
<LISTING>
<FIRST>John</FIRST>
<LAST>Smith</LAST>
<ADDRESS TYPE="Home">
<STREET>123 test</STREET>
<CITY>Sebastopol</CITY>
<STATE>California</STATE>
<ZIP>12345</ZIP>
</ADDRESS>
<PHONE>1-800-123-4567</PHONE>
<EMAIL>john.smith@gmail.com</EMAIL>
<RELATION>Friend</RELATION>
</LISTING>
</PHONEBOOK>
Run Code Online (Sandbox Code Playgroud)
这是XSLT:
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" />
<xsl:template match="/">
<xsl:for-each select="//LISTING">
<xsl:value-of select="RELATION" /><xsl:text>, </xsl:text>
<xsl:value-of select="FIRST" /><xsl:text>, </xsl:text>
<xsl:value-of select="LAST" /><xsl:text>, </xsl:text>
<xsl:if test="ADDRESS">
<xsl:for-each select="ADDRESS">
<xsl:choose>
<xsl:when test="@TYPE">
<xsl:value-of select="@TYPE" />,
</xsl:when>
<xsl:otherwise>
<xsl:text>Home </xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="STREET" />, …Run Code Online (Sandbox Code Playgroud) 我正在开发一个模型盒jQuery插件,我需要知道如何获得一些窗口属性.
框和它的着色器div在页面顶部淡出,着色器div覆盖整个主体,而不仅仅是窗口(对于具有水平滚动条的页面很重要).当模型div淡入时,它会根据窗口水平和垂直居中.但是,如果用户向下滚动一些页面,这将无效(该框将位于页面顶部,因为它仅基于窗口大小居中).
有没有办法让窗户相对于身体的顶部和左侧位置.
例如,用户向下滚动页面并单击任何打开模型框的内容,我该怎么做才能获得窗口顶部从主体顶部向下的像素数.
如果之前有人问过,我道歉,但这是一个难以搜索的问题.这是我在网络开发的这些年里第一次遇到这个问题,所以我很好奇.
我正在为一个网站编辑一些HTML文件,我注意到在脚本标签的src属性中,前一位作者附加了一个问号后跟数据.
例如: <script src="./js/somefile.js?version=3.2"></script>
我知道这在某些语言中用于GET请求中的值传递,例如PHP,但据我所知,这不是在javascript中完成的 - 至少在调用javascript文件时.有谁知道这有什么作用,如果有的话?
编辑:哇,很多回复.谢谢你们所有人.由于很多人都在说类似的事情,我会发布全球更新,而不是评论每个人.
在这种情况下,javascript文件是静态的,因此我的好奇心.我也打开了它们,没有看到任何尝试访问文件加载变量的事情.我从来没有想过缓存或简单的版本控制,这两种情况在这种情况下都更容易发生.
提前谢谢你们所有人.
我目前正在调整/改进我为我公司从头开始编写的MVC框架.它相对较新,所以肯定是不完整的.我需要将错误处理合并到框架中(一切都应该有访问错误处理),它应该能够处理不同类型和级别的错误(用户错误和框架错误).我的问题是这样做的最佳方法和最佳机制是什么?我知道PHP 5的异常处理和PEAR的不同错误机制,但我从来没有使用过它们.我需要一些高效且易于使用的东西.
创建自己的错误处理或使用已经制作的东西会更好吗?当然欢迎任何建议,提示,问题.我最终会认为以某种方式注册错误处理程序与PHP的甜蜜,所以我只需要抛出错误,然后决定如何处理它以及是否继续.
编辑:对不起,我应该提供更多有关我想记录的错误类型的详细信息.我希望记录2种主要类型的错误:用户和框架.
对于用户错误,我的意思是坏网址(404),非法访问受限制的页面等等.我知道我可以重新路由到主页或只是脱口而出一个JavaScript对话框,但我希望能够真正处理这些错误并在它们变得明显时添加更多用户错误.
通过框架错误,我的意思是无法连接到数据库,有人在事故中删除了数据库表或以某种方式删除了文件等.
此外,我将负责开发和实时服务器处理.
所以我有一个名为router的PHP类,它接受URL并将其展开以查找所请求的组件,操作和任何给定的值.然后它加载负责的类,运行动作等等.我现在通过用户类将用户访问集成到类中.
对于每个组件(它是一个类),我有一个名为"perms"的静态类数组变量,它将每个操作保存为索引,将数字保存为运行操作所需的最小权限.每个组件还具有静态函数,以获取传递的操作名称的权限值.
我遇到的问题是使静态函数与存储在变量中的类的名称一起正常工作.在路由器中,我使用变量来保存组件的名称.
$this->controller // cms, calendar ,etc
Run Code Online (Sandbox Code Playgroud)
然后我添加'Controller'来获取类的名称
$class = $this->controller.'Controller'; // cmsController, calendarController, etc
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用它来访问静态函数时,我收到一个错误
$minActionPerm = $class::getPerms( $this->action ); // No go, parse error
Run Code Online (Sandbox Code Playgroud)
当我输入类名时我没有错误,但这不是一个真正的解决方案.
$minActionPerm = cmsController::getPerms( $this->action ); // Good, but literal
Run Code Online (Sandbox Code Playgroud)
当我创建类的对象来运行操作时,该变量也有效.
$object = new $class();
Run Code Online (Sandbox Code Playgroud)
我敢肯定这可能只是一个简单的答案 - 例如变量使用,但它是我现在不知道的那个.
感谢您的耐心和帮助.我完全重申了这个问题,因为我的所有版本都要花很长时间.我有一个PHP MVC框架,有4个入口点:
从根目录:
index.php
index-ajax.php
admin/index.php
admin/index-ajax.php
我需要一个.htcaccess文件来接受任何请求,并根据url将其重写到相应的文件中.长网址是index.php?rt = cms/view/15,我希望它是index/cms/view/15.除了一个问题之外,那部分已经完成了.
这是我的.htaccess文件:
# htaccess file for framework - GOOD
Options +FollowSymLinks
# Turn on the mod_rewrite engine - GOOD
RewriteEngine On
# Hide indexes - GOOD
Options -Indexes
# If a file is not one of these, continue processing. - GOOD
RewriteRule \.(css|js|jpg|jpeg|png|gif|ico)$ - [L]
# RewriteRules for folder index files
#RewriteRule ^(index)?(.php)?$ index.php [L] - GOOD
#RewriteRule ^admin(/?)(index)?(.php)?$ admin/index.php [L] - GOOD
# RewriteRules for admin folder arguements - going …Run Code Online (Sandbox Code Playgroud) 提前谢谢大家.这是我第一次开发一个jQuery插件(并且第一次在javascript中开发实际上也是如此),我不得不说我非常了不起(它可能对你经验丰富的js/jquery开发人员有很多可怕的事情,但这是我的第一次尝试 - 请忍受我:).我也欢迎对任何代码进行任何建设性的批评.
这是一个模型框插件(是的,还有其他工作要求,但工作要求规定我自己编码以避免第三方依赖)显示给定的文本,来自ajax调用的文本或从ajax调用给出/获取的表单然后通过ajax处理表单提交.这需要尽可能自定义,所以我试图提供一些钩子(?? - 匿名函数),用户可以使用它来将自定义代码传递给插件.
我遇到的问题是为用户功能提供参数.如果我使用关键字'this',我可以传递'msg'变量,用户函数可以使用它.但是当我传递'msg'而不是'this'时,用户会得到一个空白变量.我想传递的不仅仅是msg - 也是在ajax调用中传递的数据数组,模型框的jQuery对象是我真正想做的事情.
下面是代码片段 - 该函数位于插件内部并在插件中调用; 我只是将一些代码分组到用于组织/开发目的的函数中.
// Submits the form inside of the model box
// and calls the user hooks of onFormSuccess and
// onFormFailure for ajax success and error
function submitForm() {
var URL = $('form',$contentNode).attr('action'),
method = $('form',$contentNode).attr('method'),
data = $('form',$contentNode).formSerialize();
$.ajax({
url: URL,
type: method,
data: data,
success: function(msg) {
// Doesn't work, but I would like it too
//settings.onFormSuccess.call(msg, breakData(data) );
// Does work
settings.onFormSuccess.call(this);
},
error: function …Run Code Online (Sandbox Code Playgroud) 我问这个问题的原因是因为我已经获得了我的第一个真正的(是的,一个有偿的办公室工作 - 没有更多的志愿服务!)大约两个月前的Web开发工作.我在计算机信息系统(Web开发和编程)方面有几个同事.但是,正如你们许多人所知,你在大学里学到的东西以及你们在工作现场所需要的东西可能会有很大差异.我肯定从我的工作中学习 - 我重新创建了我们在MVC架构中从头开始使用的整个框架 - 第一次做与设计模式相关的任何事情.
我想知道你会推荐什么作为在OO PHP中传递/返回值的最佳方法?现在我没有实现任何类型的标准,但我想在框架的大小增加之前创建一个标准.当多个值需要返回时,我返回数组,有时传递数组或有多个参数.数组是最好的方法还是有更有效的方法,比如json?我喜欢数组的想法,传递更多或更少的值,你只需要更改数组而不是函数定义本身.
谢谢大家,只是想成为一个更好的开发人员.
编辑:对不起,我以为我接受了这个问题的答案.我的坏,非常,非常糟糕.
谢谢你们所有人的答案.
我正在学习,因为我要去 - 所以我正在学习,但仍有很长的路要走.对于工作,我们主要使用MySQL作为我们的数据库 - Web开发.我有一个关于唯一索引的问题 - 何时正确使用它们以及如何使用它们.
我确定我理解他们的目的 - 将列声明为"非重复"列,也就是说该表中的特定列的值不能存在两次.如果尝试插入/更新违反该索引规则,则会失败.
我正在为站点创建用户系统,我正在为系统设计数据库表.一个表是"用户"表 - 保存用户
users
-----------------
int(4) usersID primary key
varchar(255) lastName
varchar(255) firstName
varchar(255) email unique
varchar(255) password
Run Code Online (Sandbox Code Playgroud)
我在'email'上创建了一个唯一索引,因为每个用户的每封电子邮件必须不同 - 它将用作登录.但是,我还想为'lastName','firstName'和'email'创建一个唯一索引,因为没有两个用户应该拥有这三者的相同组合.我应该为该规则创建另一个唯一索引,还是只为这三个创建一个?在索引中重复列是不是很糟糕?
php ×4
javascript ×3
jquery ×2
apache ×1
database ×1
mod-rewrite ×1
mysql ×1
oop ×1
xml ×1
xslt ×1