我需要在lxml中的特定标签后获取一些信息.xml doc看起来像这样
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/
ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>Community Bank</display-name>
<description>WebGoat for Cigital</description>
<context-param>
<param-name>PropertiesPath</param-name>
<param-value>/WEB-INF/properties.txt</param-value>
<description>This is the path to the properties file from the servlet root</description>
</context-param>
<servlet>
<servlet-name>Index</servlet-name>
<servlet-class>com.cigital.boi.servlet.index</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Index</servlet-name>
<url-pattern>/index</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Index</servlet-name>
<url-pattern>/index.html</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
我想阅读com.cigital.boi.servlet.index.
我已经使用这段代码来读取servlet下的所有内容
context = etree.parse(handle)
list = parser.xpath('//servlet')
print list
Run Code Online (Sandbox Code Playgroud)
list只包含更多信息:迭代上下文字段我找到了这些行.
<Element {http://java.sun.com/xml/ns/j2ee}servlet-name at 2ad19e6eca48>
<Element {http://java.sun.com/xml/ns/j2ee}servlet-class at 2ad19e6ecaf8>
Run Code Online (Sandbox Code Playgroud)
我在想,因为我在搜索时没有包含名称空间,输出是空列表.请建议在servlet-class标签中阅读"com.cigital.boi.servlet.index"
namespace n1 {
namespace n2 {
...
int myfunc(void)
{
return 1;
}
class myclass {
..
};
}
}
Run Code Online (Sandbox Code Playgroud)
我认为可以用这种方式定义一个函数,并从'myclass'及其派生词中访问它.但是gcc甚至不想编译这段代码:
multiple definition of `n1::n2::myfunc()'
Run Code Online (Sandbox Code Playgroud)
这个功能是这里唯一的一个,我错过了什么?谢谢.
我目前的代码如下:
namespace Libraries;
class_alias('Libraries\ORM', 'ORM');
class ORM
{
public function __construct() {}
static public function someMethod()
{
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
我认为我可以快速命名空间,如上所示,所以我只需要调用ORM::someMethod();而不是\Libraries\ORM::someMethod();
(我在另一个命名空间中使用ORM类,让我们说"项目")
这是可能的还是什么是正确的解决方案?我知道我可以在类存储在一个全局命名空间,但我仍然需要使用全球斜线,如:\ORM::someMethod();.
谢谢!
假设我有一个包含一些文件的文件夹:
在每个文件中我都声明了命名空间,如下所示:
为database.php
namespace Infrastructure\Core
{
class Database
{...}
}
Run Code Online (Sandbox Code Playgroud)
Model.php
namespace Infrastructure\Core
{
class Model
{...}
}
Run Code Online (Sandbox Code Playgroud)
等等...
现在我想使用该命名空间中的所有类.想象一下,我有以下根文件
的index.php
use Infrastructure\Core
class Main
{
$database = new Database();
$controller = new Controller();
//...etc..
}
Run Code Online (Sandbox Code Playgroud)
这几乎就像java和C#命名空间,但显然在PHP中它不起作用......所以以下方法也不起作用:
的index.php
use Infrastructure\Core
class Main
{
$database = new Infrastructure\Core\Database();
$controller = new Infrastructure\Core\Controller();
//...etc..
}
Run Code Online (Sandbox Code Playgroud)
也不起作用,所以我终于想到了,好吧我也必须包含文件然后...仍然不起作用..我做错了什么?我真的没有得到数以百万计的例子,因为它看起来与我之前使用过的任何其他命名空间都有所不同.
有人可以使用正确的语法提供一个特定于此的示例,因此我可以使用PHP来了解它的全部内容.我认为它在php中的概念略有不同?
我试图请求以下URL,我收到一个错误,说"数据参数是零".我发现'seller_name'有空格,'amount'有点(.).我认为这是由URL引起的问题.那么有没有办法发送有空格和点的URL而不丢失信息?
NSURL *url1 = [[NSURL alloc]initWithString:[NSString stringWithFormat:@"192.168.1.85/localex_postsale.html?contactid=%@&exchangeid=%@&token=%@&buyerid=%@&seller_name=%@&desc=%@&amount=%@&sellerid=%@",contactid,exchangeid,token,buyervalue,sellers,_Description,_Amount,contactid]];
NSError *errors1;
NSData *data1 = [NSData dataWithContentsOfURL:url1];
NSDictionary *json1 = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:data1 options:kNilOptions error:&errors1];
Run Code Online (Sandbox Code Playgroud) 我在使用WPF的项目上遇到了问题.我正在尝试使用DispatchTimer.我在另一个例子中看到了using DispatcherTimer = Windows.UI.Xaml.DispatcherTimer; 命名空间.
这对我不起作用.我假设我错过了一些装配,但似乎无法找到它可能是什么.
如何在不使用语法的情况下访问"locale"和"global"
using namespace std
Run Code Online (Sandbox Code Playgroud)
它有以下语法我有问题
#include <locale>
locale::global(locale("swedish"));
Run Code Online (Sandbox Code Playgroud)
提前致谢!
通常,当在我的代码中包含名称空间或程序集时,我经常会遇到奇怪的情况,即名称空间是从另一个名称空间继承而来的,而父名称空间的类却不可用。例如,当使用List<>或时Dictionary<>,我使用System.Collections.Generic名称空间。但是,如果我也想使用IEnumerator,则还必须包括System.Collections名称空间。不应该System.Collections已经被任何成员引用System.Collections.Generic,因为它是一个孩子?两个名称空间还共享同一程序集mscorlib.dll。
为什么当子级不包含父级名称空间?
我正在制作一个跨平台的C#绘图库供我自己使用,模仿System.Drawing并使用尽可能多的标准System.Drawing类型(如PointF,RectangleF,Color和Pen).
不幸的是,iOS上没有提供Pen类.因此,在编译iOS时,我在System.Drawing中添加了这个,并且设计为与标准System.Drawing.Pen类尽可能兼容.到现在为止还挺好.
今天我添加了对线帽和连接样式的支持.在标准框架中(但不在iOS上),这些在System.Drawing.Drawing2D命名空间中定义.所以,我再次在仅在iOS上编译的代码中添加它们:
namespace System {
namespace Drawing {
namespace Drawing2D {
public enum LineCap {
Flat,
Round,
Square // (etc.)
}
}
public class Pen {
public Color Color;
public float Width;
public Drawing2D.LineCap StartCap;
public Drawing2D.LineCap EndCap;
// (etc.)
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我们得到了奇怪的一点.在我的主程序中,我试图使用所有这些,我有"使用System.Drawing;" 在文件的顶部.我发现,即使在iOS上,我现在也可以直接使用Pen:
Pen p = new Pen(Color.Yellow, 6);
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试直接使用Drawing2D.LineCap,我会收到一个CS0103错误,"当前上下文中不存在名称'Drawing2D'."
p.StartCap = Drawing2D.LineCap.Round; // <-- ERROR
Run Code Online (Sandbox Code Playgroud)
为了使它工作,我必须完全限定名称,如下所示:
p.StartCap = System.Drawing.Drawing2D.LineCap.Round; // <-- OK (but sad)
Run Code Online (Sandbox Code Playgroud)
所以,我想明白为什么会这样.我知道当有两个版本的东西时,可能需要一个完全限定的名称,因此编译器无法解决你的意思.但在这种情况下我无法看到碰撞.据我所知,MonoTouch根本没有System.Drawing2D名称空间; 我给了它一个,那么问题是什么?
我知道使用命名空间的可能性更大.通过使用语法using namespace std;之初它加载所有的std命名空间,但我只用了几个(cout,cerr,endl,vector,string).
你会怎么建议我这样做:
using namesapace std - 加载它?using std::cout; using std::endl; using std::cerr; using std::vector; using std::string - 加载我需要的东西?cout,cerr,endl,vector,string?namespaces ×10
c# ×3
c++ ×3
ios ×2
php ×2
assemblies ×1
inheritance ×1
json ×1
locale ×1
lxml ×1
nsdata ×1
nsurl ×1
python ×1
using ×1
wpf ×1
xamarin ×1
xml-parsing ×1