标题基本概括了所有内容.
如果我有类似的东西(从PHP站点示例):
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<movies></movies>
XML;
$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type', 'documentary');
$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: More Parser Stories');
$movie->addChild('plot', 'This is all about the people who make it work.');
$characters = $movie->addChild('characters');
$character = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');
$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');
echo("<pre>".htmlspecialchars($sxe->asXML())."</pre>");
die();
Run Code Online (Sandbox Code Playgroud)
我最终输出一个长字符串,如下所示:
<?xml version="1.0" standalone="yes"?>
<movies type="documentary"><movie><title>PHP2: More Parser Stories</title><plot>This is all about the people who make it work.</plot><characters><character><name>Mr. Parser</name><actor>John Doe</actor></character></characters><rating type="stars">5</rating></movie></movies>
Run Code Online (Sandbox Code Playgroud)
这对于程序使用者来说很好,但是对于调试/人工任务,有没有人知道如何将它变成一个漂亮的缩进格式?
我有一个表格来定义我网站中可能的类别 - 字段看起来像这样:
- id - name - parentID
信息存储如下:
+-----+------+----------+ | id | name | parentID | +-----+------+----------+ | 1 | pets | 0 | +-----+------+----------+ | 2 | cats | 1 | +-----+------+----------+ | 3 | dogs | 1 | +-----+------+----------+
A parentID为0表示类别/页面位于本地级别.我正在寻找一种快速轻松生成父类别的方法.
想到的第一个方法是一系列SQL查询,但我很快意识到,这将是潜在的资源密集,网站越复杂.
通过阅读mysql手册,我已经看到mysql可以使用循环和条件语句,但是我不确定我是如何在这里实践的.
理想情况下,我希望有一个查询来提取所有直接相关的父元素.
如果我正在看宠物类别,我只会看到home它,因为它在顶级.一旦我向下钻取(或者进入cats,dogs或者在页面下面pets),我应该pets在条形图上看到- 后续的子类别和页面也是如此.
使用以这种方式存储的信息生成类别列表的最有效方法是什么?如果这个问题需要更多说明,请询问,我会尽力提供更多信息.
澄清:这是CMS的一部分 - 因此,用户将需要能够动态更改类别.我已经研究了几种数据存储方案(例如嵌套集),它们似乎不适合用于更改导航的简单形式.
因此,任何方法都需要容易地a)用户理解,并且b)容易地实现给用户.
这些类别最好在PC上描述为文件夹,而不是标签.查看任何给定类别时,您可以看到该类别的直接子项以及直接子页面.
查看类别或页面时,父类别(但不是可见的).
例如:我有德国谢泼德,它存在于宠物下的狗身下
When viewing *pets*: Home …
我即将潜入一个面向规则的项目(使用ILOGs .NET规则 - 现在是IBM).我已经阅读了几个关于如何设置规则处理以及如何与规则引擎交互的不同观点.
我看到的两个主要想法是将规则引擎集中(进入自己的服务器场),并通过Web服务API(或通过WCF在ILOG的情况下)对服务器场进行编程.另一方面是在每个应用服务器上运行规则引擎的实例,并在本地与其进行交互,每个实例都有自己的规则副本.
集中化的优势在于易于将规则部署到集中位置.规则按需要扩展,而不是每次扩展应用程序服务器配置时进行扩展.这减少了购买许可证的浪费.此设置的缺点是进行服务调用,网络延迟等的额外开销.
本地运行规则引擎的上行/下行与集中配置的上行/下行完全相反.没有慢速服务调用(快速API调用),没有网络问题,每个应用服务器都依赖于它自己.管理规则的部署变得更加复杂.每次向应用云添加节点时,您都需要更多的规则引擎许可证.
在阅读白皮书时,我发现亚马逊正在为每个应用服务器配置运行规则引擎.他们似乎对规则进行了缓慢的部署,并认识到规则发布中的滞后是"可接受的",即使业务逻辑在给定的时间段内不同步.
问题:根据您的经验,开始将规则集成到基于.net的Web应用程序中的最佳方法是什么?这个商店还没有花费太多时间在规则驱动的世界中工作?
这是我正在为一个简介Java类工作的学校问题.分配是编写一个程序,生成一个8 x 8矩阵的随机生成的二进制数,并进行程序检查,如果有的话,列都是0,如果主要和次要对角线也是由零组成.主要对角线从左上角到右下角(即所形成的对角线arrayName[0][0]来arrayName[8][8]在这种情况下)和次对角线是一个从右上角矩阵的左下角去.
我已经完成了所有工作,除了检查主要和次要对角线的部分,我无法弄清楚为什么这不起作用.我一直试图做的只是计算沿对角线的零数,如果这个数字是8,那么你自己就得到了一个由0组成的对角线.以下是我对主要和次要数组的两种方法:
public static void majorDiagonal(int[][] board) {
byte count = 0;
for(int row = board.length - 1, offsetNumber = board.length - 1; row > 0; row--, offsetNumber--)
for(int column = board.length - 1; column > 0; column--)
if(board[row][offsetNumber] == 0) count++;
if(count == 8) System.out.println("All zeroes on the major diagonal");
}
public static void minorDiagonal(int[][] board) {
byte count = 0;
for(int row = board.length - 1, offsetNumber = 0; row > 0; …Run Code Online (Sandbox Code Playgroud) 我正在尝试想出一种进行身份验证和授权的好方法。这是我所拥有的。欢迎评论和我的期望。
我在 mac 服务器上有 php。我有用于用户帐户的 Microsoft AD。
我正在使用LDAP在用户登录内网时查询AD。
我的设计问题涉及如何处理该 AD 信息。一位同事建议在 AD 中使用命名约定以避免中间数据库。例如,我有一个网页,personnel_payroll.php。我获取了 url,并使用该 URL 和 AD 用户查询 AD 中的 person_payroll 组。如果登录的用户属于该组,则他们有权查看该页面。我必须为每个页面或至少用户域用户建立一个组来进行通用身份验证。
页面上的控件变得更加棘手。例如,假设页面或网格上有一个按钮,只有经理才能看到它。我需要在 AD 中将 person_payroll_myButton 作为一个组。如果用户属于该组,他们就会获得该按钮。如果一个页面有多个不同级别的授权,我可以有很多组。
是的,我的 AD 会很大,但如果我不这样做,其他东西也会很大,无论是 MySQL(或其他一些数据库)、文本文件、httpd.conf 等。
我将有一个通用的 php 函数 IsAuthorized,用于传递 url 或控件名称和经过身份验证的用户的各种项目。
使用这样的安全命名约定并使用 AD 作为存储库是否存在本质上的错误?我必须保留在某个地方。为什么不是AD?
谢谢您的评论。
编辑:您认为此方案会因为 LDAP 调用而导致页面超慢吗?
编辑:我不是第一个想到这一点的人。任何对此的想法都值得赞赏。
编辑:谢谢大家。很抱歉我无法给你们更多的回答分数。我必须选择一个。
我可以使用以下代码轻松定义我的问题:
self.Bind(wx.EVT_MENU_OPEN, self.OnAbout)
Run Code Online (Sandbox Code Playgroud)
这意味着当我点击MenuBar中的任何wx.Menu()时,会调用函数'onAbout()'.如何将此事件绑定到名为wx.MenuAbout()的特定wx.Menu()?
如果您感觉更有帮助,也许您可以向我提供事件处理程序文档的链接.我可以找到事件处理函数的文档,但不能找到实际的事件处理程序(例如wx.EVT_MENU).
类似的问题,但我不打算将一系列wx.Menu()绑定到事件:是否可以将事件绑定到菜单而不是wxPython中的菜单项?
编辑:理想情况下,这是我希望能够做到的:
menuAbout = wx.Menu()
self.Bind(wx.EVT_MENU, self.OnAbout, id=menuAbout.GetId())
Run Code Online (Sandbox Code Playgroud)
结果是.menuBar()中的任何其他项(例如:File,Edit,Tools)都可以作为普通菜单使用,但"About"的工作方式类似于可点击链接.
使用wx.EVT_MENU_OPEN意味着可以打开文件菜单,然后当鼠标悬停在'about'上时,会调用self.OnAbout函数,我只会在用户单击"关于"菜单时发生这种情况.
问题:
一个盒子可容纳53件物品.如果一个人有56个项目,则需要2个盒子来容纳它们.方框1将容纳53个项目,方框2将容纳3个项目.
我如何重复上面的内容,其中53是一个不变的,不变的值,56是每个框的变量:
Math.Ceiling(Convert.ToDecimal(intFeet / 53))
Run Code Online (Sandbox Code Playgroud)
到目前为止我所拥有的是:
int TotalItems = 56;
int Boxes = Math.Ceiling(Convert.ToDecimal(intFeet / 53));
for (int i = 0; i < Boxes; i++)
{
int itemsincurrentbox=??
}
Run Code Online (Sandbox Code Playgroud) 我在源文件中有2个方法:
def Foo
puts "hello"
puts "bar"
end
def Bar
puts "hello"
puts "bar"
end
Run Code Online (Sandbox Code Playgroud)
我想交换方法的顺序,所以Bar是第一个.
假设光标在d in上def Foo,简单的方法是:
shift v -> jjjj -> d -> jjj -> p -> O -> esc
但是这种感觉有点长,并且不适合任意长的方法:
在Vim中最有效的方法是什么?击键明智?
编辑 请记住,我希望解决方案能够解决方法在大类环境中的情况,因此G最好避免使用
我正在尝试从文本文件中删除元音,但我遇到了一些麻烦.我在第6行收到编译错误说
invalid conversion from const char to char
Run Code Online (Sandbox Code Playgroud)
我很确定这与我在代码中设置文件流的方式有关.我正在使用fstream,因为它用于读写,但我没有包含任何打开模式,因为我认为我可以在没有它们的情况下写入/读取文件(我很确定你必须使用一个,我只是不确定哪一个.)另外,我不确定我设置equals运算符的方式是否合法(它是否会读取它,好像s [i]等于a或e或i或o或u).
码:
#include "std_lib_facilities.h"
void vowel_removal(string& s)
{
for(int i = 0; i < s.length(); ++i)
if(s[i] == ('a' || 'e' || 'i' || 'o' || 'u')) s[i] = " ";
}
int main()
{
cout << "Enter file name.\n";
string filename;
cin >> filename;
fstream f(filename.c_str());
string word;
while(f>>word){
vowel_removal(word);
f << word;
}
keep_window_open();
}
Run Code Online (Sandbox Code Playgroud) 我已经使用NHibernate,LINQ to SQL和Entity Framework很长一段时间了.虽然我看到使用ORM来保持开发工作快速移动,代码简单,以及对象关系阻抗不匹配最小化的好处,但我仍然发现很难说服一个ORM强大的死硬SQL dba.从我的角度来看,ORM可以用于所有数据访问的至少90-95%,而在适当的程序或功能中可以完成那些非常繁琐的事情.我绝不是那个说我们必须在ORM中做所有事情的人!
问题:说服旧学校dba的一些更好的理由是,使用ORM并不是程序员曾经想到的绝对最糟糕的想法!
php ×2
arrays ×1
c# ×1
c++ ×1
char ×1
for-loop ×1
formatting ×1
java ×1
ldap ×1
linq-to-sql ×1
math ×1
matrix ×1
mysql ×1
nhibernate ×1
orm ×1
performance ×1
python ×1
rule-engine ×1
security ×1
simplexml ×1
vim ×1
websphere ×1
wxpython ×1
xml ×1