标签: namespaces

使用包含命名空间的lxml解析xml

我需要在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"

python lxml namespaces xml-parsing

0
推荐指数
1
解决办法
2924
查看次数

在命名空间中定义一个函数

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)

这个功能是这里唯一的一个,我错过了什么?谢谢.

c++ namespaces

0
推荐指数
1
解决办法
73
查看次数

是否存在命名空间单例类的快捷方式

我目前的代码如下:

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();.

谢谢!

php static-methods namespaces

0
推荐指数
1
解决办法
125
查看次数

PHP命名空间,我只是不明白

假设我有一个包含一些文件的文件夹:

  • 基础设施/核心/ database.php中
  • 基础设施/核心/ Model.php
  • 基础设施/核心/ View.php
  • 基础设施/核心/ Controller.php这样

在每个文件中我都声明了命名空间,如下所示:

为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中的概念略有不同?

php namespaces

0
推荐指数
1
解决办法
101
查看次数

如何请求在ios中有空格和点的网址?

我试图请求以下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)

json namespaces nsurl nsdata ios

0
推荐指数
1
解决办法
1770
查看次数

DispatcherTimer需要哪个程序集?命名空间不起作用

我在使用WPF的项目上遇到了问题.我正在尝试使用DispatchTimer.我在另一个例子中看到了using DispatcherTimer = Windows.UI.Xaml.DispatcherTimer; 命名空间.

这对我不起作用.我假设我错过了一些装配,但似乎无法找到它可能是什么.

c# wpf namespaces

0
推荐指数
1
解决办法
549
查看次数

如何在c ++中访问语言环境和全局

如何在不使用语法的情况下访问"locale"和"global"

 using namespace std
Run Code Online (Sandbox Code Playgroud)

它有以下语法我有问题

 #include <locale>

 locale::global(locale("swedish"));
Run Code Online (Sandbox Code Playgroud)

提前致谢!

c++ locale namespaces

0
推荐指数
1
解决办法
51
查看次数

包括时的命名空间,程序集和继承层次结构

通常,当在我的代码中包含名称空间或程序集时,我经常会遇到奇怪的情况,即名称空间是从另一个名称空间继承而来的,而父名称空间的类却不可用。例如,当使用List<>或时Dictionary<>,我使用System.Collections.Generic名称空间。但是,如果我也想使用IEnumerator,则还必须包括System.Collections名称空间。不应该System.Collections已经被任何成员引用System.Collections.Generic,因为它是一个孩子?两个名称空间还共享同一程序集mscorlib.dll。

为什么当子级不包含父级名称空间?

c# inheritance assemblies namespaces class-hierarchy

0
推荐指数
1
解决办法
249
查看次数

C#:尽管使用了为什么需要完全限定名称?

我正在制作一个跨平台的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名称空间; 我给了它一个,那么问题是什么?

c# namespaces using ios xamarin

0
推荐指数
1
解决办法
353
查看次数

C++使用namespase std,使用std :: xxx还是只使用std :: x?

我知道使用命名空间的可能性更大.通过使用语法using namespace std;之初它加载所有的std命名空间,但我只用了几个(cout,cerr,endl,vector,string).

你会怎么建议我这样做:

  1. using namesapace std - 加载它?
  2. using std::cout; using std::endl; using std::cerr; using std::vector; using std::string - 加载我需要的东西?
  3. 每次调用之前的命名空间cout,cerr,endl,vector,string

c++ namespaces

0
推荐指数
1
解决办法
321
查看次数