标签: namespaces

118
推荐指数
3
解决办法
3万
查看次数

Python ElementTree模块:当使用"find","findall"方法时,如何忽略XML文件的命名空间以找到匹配的元素

我想使用"findall"方法在ElementTree模块中找到源xml文件的一些元素.

但是,源xml文件(test.xml)具有命名空间.我将部分xml文件截断为样本:

<?xml version="1.0" encoding="iso-8859-1"?>
<XML_HEADER xmlns="http://www.test.com">
    <TYPE>Updates</TYPE>
    <DATE>9/26/2012 10:30:34 AM</DATE>
    <COPYRIGHT_NOTICE>All Rights Reserved.</COPYRIGHT_NOTICE>
    <LICENSE>newlicense.htm</LICENSE>
    <DEAL_LEVEL>
        <PAID_OFF>N</PAID_OFF>
        </DEAL_LEVEL>
</XML_HEADER>
Run Code Online (Sandbox Code Playgroud)

示例python代码如下:

from xml.etree import ElementTree as ET
tree = ET.parse(r"test.xml")
el1 = tree.findall("DEAL_LEVEL/PAID_OFF") # Return None
el2 = tree.findall("{http://www.test.com}DEAL_LEVEL/{http://www.test.com}PAID_OFF") # Return <Element '{http://www.test.com}DEAL_LEVEL/PAID_OFF' at 0xb78b90>
Run Code Online (Sandbox Code Playgroud)

虽然它可以工作,因为有一个名称空间"{http://www.test.com}",在每个标记前面添加一个名称空间是非常不方便的.

使用"find","findall"等方法时,如何忽略命名空间?

python namespaces find elementtree findall

118
推荐指数
8
解决办法
6万
查看次数

c ++标题中的"using namespace"

在我们所有的C++课程,所有的老师总是把using namespace std;在之后#include在它们的S .h文件.从那时起,我觉得这很危险,因为在另一个程序中包含该标题我会将命名空间导入到我的程序中,可能没有意识到,打算或想要它(标题包含可以非常深入嵌套).

所以我的问题是双重的:我是对的,using namespace不应该在头文件中使用,和/或是否有某种方法来撤消它,例如:

//header.h
using namespace std {
.
.
.
}
Run Code Online (Sandbox Code Playgroud)

还有一个问题是:标题文件是否应该是#include相应.cpp文件所需的所有标题,只有那些标题定义所需的标题,并让.cpp文件#include为其余标题,或者没有,并声明它需要的所有内容extern
问题背后的原因与上面相同:在包含.h文件时我不想要惊喜.

另外,如果我是对的,这是一个常见的错误吗?我的意思是在现实世界的编程和"真正的"项目中.

谢谢.

c++ namespaces header-files

115
推荐指数
7
解决办法
7万
查看次数

PHP名称空间和"使用"

我在命名空间和use语句方面遇到了一些麻烦.

我有三个文件:ShapeInterface.php,Shape.phpCircle.php.

我试图使用相对路径这样做,所以我把它放在所有类中:

namespace Shape; 
Run Code Online (Sandbox Code Playgroud)

在我的圈子课程中,我有以下内容:

namespace Shape;
//use Shape;
//use ShapeInterface;

include 'Shape.php';
include 'ShapeInterface.php';    

class Circle extends Shape implements ShapeInterface{ ....
Run Code Online (Sandbox Code Playgroud)

如果我使用include语句,我没有错误.如果我尝试use我得到的陈述:

致命错误:第8行的/Users/shawn/Documents/work/sites/workspace/shape/Circle.php中找不到类'Shape\Shape'

有人可以就这个问题给我一些指导吗?

php namespaces

107
推荐指数
2
解决办法
18万
查看次数

使用std命名空间

关于std命名空间使用'using'似乎有不同的看法.

有人说使用' using namespace std',其他人说不要,而是先加上与' std::' 一起使用的std函数,而其他人则说使用这样的东西:

using std::string;
using std::cout;
using std::cin;
using std::endl;
using std::vector;
Run Code Online (Sandbox Code Playgroud)

对于要使用的所有std函数.

各自的优点和缺点是什么?

c++ namespaces

105
推荐指数
4
解决办法
9万
查看次数

"无法加载类型[Namespace] .Global"让我感到悲伤

在我的.Net 2.0 Asp.net WebForms应用程序中,我的Global.asax包含以下代码:

<%@ Application CodeBehind="Global.asax.cs" Inherits="MyNamespace.Global" Language="C#" %>
Run Code Online (Sandbox Code Playgroud)

但是当我构建时,我得到一个错误陈述 -

无法加载"MyNamespace.Global"类型.

这似乎是因为Global.asax文件中的编译器没有看到MyNamespace命名空间(在文件Global.asax.cs后面的代码中定义)(在R#intellisence中没有显示..).事实证明这是一个非常难以破解...任何帮助将不胜感激!

注意:Global.asax和Global.asax.cs位于同一文件夹中.

注意2:使用csc从vs提示符编译时,编译正常

c# asp.net webforms namespaces global-asax

105
推荐指数
6
解决办法
13万
查看次数

在.cpp文件中定义C++命名空间方法的正确方法

可能是重复的,但不是一个容易搜索的...

给出如下标题:

namespace ns1
{
 class MyClass
 {
  void method();
 };
}
Run Code Online (Sandbox Code Playgroud)

我看到method()在.cpp文件中以多种方式定义:

版本1:

namespace ns1
{
 void MyClass::method()
 {
  ...
 }
}
Run Code Online (Sandbox Code Playgroud)

版本2:

using namespace ns1;

void MyClass::method()
{
 ...
}
Run Code Online (Sandbox Code Playgroud)

版本3:

void ns1::MyClass::method()
{
 ...
}
Run Code Online (Sandbox Code Playgroud)

有没有'正确'的方法呢?这些都是"错误的",因为它们并不都意味着同样的事情吗?

c++ coding-style namespaces

100
推荐指数
4
解决办法
4万
查看次数

如何使用XPath忽略名称空间

我的目标是使用XPath从具有多个名称空间的多个xml文件中提取某些节点.只要我知道名称空间URI,一切正常.命名空间名称本身保持不变,但模式(XSD)有时是客户端生成的,即我不知道.然后我基本上有三种选择:

  1. 只使用一个模式用于命名空间,希望没有出错(我能确定吗?)

  2. 获取文档的子节点并查找带有命名空间URI的第一个节点,希望它在那里并只使用URI,希望它是正确的.可能由于多种原因而出错

  3. 不知何故告诉xpath:"看,我不关心命名空间,只需找到具有此名称的所有节点,我甚至可以告诉您命名空间的名称,而不是URI".这就是问题......

这不是许多"我的xpath表达不起作用的重复,因为我不知道命名空间感知" 这里这里发现的问题.我知道如何使用命名空间感知.只是没有如何摆脱它.

xml xpath namespaces xml-namespaces

96
推荐指数
3
解决办法
8万
查看次数

"var FOO = FOO || {}"(将变量或空对象分配给该变量)在Javascript中意味着什么?

看一下在线源代码,我在几个源文件的顶部看到了这个.

var FOO = FOO || {};
FOO.Bar = …;
Run Code Online (Sandbox Code Playgroud)

但我不知道是什么|| {}.

我知道{}是等于new Object(),我认为这||是为了"如果它已经存在使用其值,否则使用新对象.

为什么我会在源文件的顶部看到这个?

javascript namespaces variable-declaration or-operator

94
推荐指数
4
解决办法
2万
查看次数

什么是tempuri.org?

为什么tempuri.org存在?为什么每个XML Webservice都需要自己的命名空间,这与Web上的任何其他命名空间都是唯一的?

web-services namespaces

89
推荐指数
5
解决办法
12万
查看次数