tostring 相关问题

“toString”或“ToString”是高级编程语言中使用的主要格式化方法或函数。它将Object转换为其字符串表示形式,以便适合显示。

Pandas(Excel):如何读取开头为零的完整值?

美好的一天。 我有一个包含两列的 Excel 文件。第一列包含 12 个数字。其中一些有前导零。 我尝试在打开文件时指定“dtype=str”,但是 Pandas ...

回答 3 投票 0

使用覆盖 toString 方法时获取错误的值

我使用数组列表来保存不同形状的对象,这些对象是抽象超类的子类。超类包含两个抽象方法:分别是surface_area和volume。我打广告后...

回答 1 投票 0

如何定义泛化to_string和to_wstring以避免代码重复

我有许多用户定义的类,我想为其定义一个 to_string 函数。但是,我不想只为 std::string 定义它,而是为所有可能的情况定义它

回答 1 投票 0

如何告诉lxml.etree.tostring(element)不要在python中写命名空间?

我有一个巨大的 xml 文件(1 Gig)。我想将一些元素(条目)移动到具有相同标题和规范的另一个文件。 假设原始文件包含带有标签 的条目 我有一个巨大的 xml 文件(1 Gig)。我想将一些元素(条目)移动到具有相同标题和规范的另一个文件。 假设原始文件包含带有标签 <to_move>: 的条目 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE some SYSTEM "some.dtd"> <some> ... <to_move date="somedate"> <child>some text</child> ... ... </to_move> ... </some> 我使用 lxml.etree.iterparse 来迭代该文件。工作正常。当我找到带有标签 <to_move> 的元素时,我们假设它存储在变量 element 中,我这样做 new_file.write(etree.tostring(element)) 但这会导致 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE some SYSTEM "some.dtd"> <some> ... <to_move xmlns:="some" date="somedate"> # <---- Here is the problem. I don't want the namespace. <child>some text</child> ... ... </to_move> ... </some> 所以问题是:如何告诉 etree.tostring() 不要写 xmlns:="some"。这可能吗?我在 lxml.etree 的 api 文档中苦苦挣扎,但找不到满意的答案。 这是我找到的etree.trostring: tostring(element_or_tree, encoding=None, method="xml", xml_declaration=None, pretty_print=False, with_tail=True, standalone=None, doctype=None, exclusive=False, with_comments=True) 将元素序列化为其 XML 的编码字符串表示形式 树。 对我来说tostring()的每一个参数似乎都没有帮助。有什么建议或者更正吗? 我经常抓住一个命名空间来为它创建一个别名,如下所示: someXML = lxml.etree.XML(someString) if ns is None: ns = {"m": someXML.tag.split("}")[0][1:]} someid = someXML.xpath('.//m:ImportantThing//m:ID', namespaces=ns) 您可以执行类似的操作来获取名称空间,以便创建一个正则表达式,该正则表达式将在使用 tostring 后清理它。 或者您可以清理输入字符串。找到第一个空格,检查其后面是否有xmlns,如果有,则删除整个xmlns位直到下一个空格,如果没有则删除该空格。重复此操作,直到不再有空格或 xmlns 声明。但不要超过第一个>。 这更多是对“unutbu”答案的评论,其中需要清理命名空间的建议,但没有给出示例。这可能就是您正在寻找的... from lxml import objectify objectify.deannotate(root, cleanup_namespaces=True) 有一种方法可以使用 XSLT 删除名称空间: import io import lxml.etree as ET def remove_namespaces(doc): # http://wiki.tei-c.org/index.php/Remove-Namespaces.xsl xslt='''<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="no"/> <xsl:template match="/|comment()|processing-instruction()"> <xsl:copy> <xsl:apply-templates/> </xsl:copy> </xsl:template> <xsl:template match="*"> <xsl:element name="{local-name()}"> <xsl:apply-templates select="@*|node()"/> </xsl:element> </xsl:template> <xsl:template match="@*"> <xsl:attribute name="{local-name()}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:template> </xsl:stylesheet> ''' xslt_doc = ET.parse(io.BytesIO(xslt)) transform = ET.XSLT(xslt_doc) doc = transform(doc) return doc doc = ET.parse('data.xml') doc = remove_namespaces(doc) print(ET.tostring(doc)) 产量 <some> <to_move date="somedate"> <child>some text</child> </to_move> </some> 这是一个古老的问题,但由于 13 年后 lxml 仍然没有内置这个明显的函数,处理它的最简单方法是使用正则表达式: def get_text(element: etree.Element) -> str: s = etree.tostring(element).decode() if m := re.match(r'^<(\w*)[^>]*>((.|\n)+)<\/\1>', s): return m.group(2).strip() return s 这会剥离整个包含元素 <description blah blah blah><div>What we want</div><p>more stuff</p></description> 并仅返回 <description> 内的标记。为了安全起见,它会保存开始元素标记以在末尾进行匹配(使用 \1 反向引用),但寻找结束 <\ 效果很好,因为贪婪匹配会跳过内容中嵌入的所有其他元素。 如果匹配失败,引发 ValueError 可能会更好,但这只会返回原始的丑陋字符串、命名空间和所有内容。

回答 4 投票 0

StringBuilder.ToString() 抛出“索引超出范围”异常

我非常感谢有人帮助我解决以下问题: 我时不时地遇到以下异常: 指数超出范围。必须是非负数并且小于...的大小

回答 2 投票 0

使用 VB.NET 更改的事件文本框中输入字符串的格式不正确

我正在尝试使用事件文本框更改,但出现错误“输入字符串的格式不正确” 我的代码有问题吗? 或者 我的代码有问题吗

回答 1 投票 0

无法在 Pine 脚本中打印自定义变量以发出警报消息

我正在尝试获取警报消息以打印之前在脚本中定义的变量。这是我的代码的alertcondition()部分: var boolalerttrigger = true 波浪趋势 1val = wt1 strWaveTre...

回答 3 投票 0

如何避免 `std::to_string()` 将一个非常小的双精度数变为 0?

我需要将非常小的双数存储为字符串格式,然后将它们反转。但是,当我尝试在 4.7816457028269855e-143 这样的小数字上运行 std::to_string() 时...

回答 3 投票 0

为什么使用 toString() 时没有创建 Java Array 类的对象?

这个问题是关于基础理论的。 让我向您展示代码: 导入java.util.Arrays; 公共类字符串操作{ 公共静态无效主(字符串[] args){ // 分裂 字符串...

回答 1 投票 0

std::to_string、boost::to_string 和 boost::lexical_cast 有什么区别<std::string>?

boost::to_string(在 boost/exception/to_string.hpp 中找到)的用途是什么?它与 boost::lexical_cast 和 std::to_string 有什么不同?

回答 2 投票 0

在 javascript 函数上调用 toString 返回源代码

我刚刚发现,当您在 javascript 函数上调用 toString() 时(如 myFunction.toString() 中),会返回该函数的源代码。 如果您在 Firebug 或 Chrome 控制台中尝试,我...

回答 7 投票 0

为什么我不能在 JavaScript 中将这个 int 转换为 String?

所以我从 mongoDB 中提取一组集合,集合中的一个文档网是一个以数字(int32)形式保存在数据库中的“价格”文档。 const hotAssets = 等待 Asset.fin...

回答 1 投票 0

Miller:如何使用 Miller 将 csv.file 中的列的数据类型从 Float64 更改为 String?

如何使用 Miller 将 csv.file 中的列的数据类型从 Float64 更改为 String?特定列中有一些 NA。还有一个函数可以对新创建的字符串进行切片...

回答 1 投票 0

是否可以重写 JavaScript 的 toString() 函数来为调试提供有意义的输出?

当我在 JavaScript 程序中 console.log() 一个对象时,我只看到输出 [object Object],这对于弄清楚它是什么对象(甚至是什么类型的对象)没有太大帮助。 在 C# 中我...

回答 17 投票 0

为什么它返回地址而不是对象? [重复]

比较器比较器 =Comparator.comparing(Employee::getIncome); 员工 minObj= Employee.persons().stream() .min(比较器) .get();...

回答 1 投票 0

显示完整的 90 分钟而不是 1:30

我在这段代码中: label_time.Text = time.ToString("mm"); 它最多只显示 60 分钟,剩下的 30 分钟从 0 开始,最后显示 30。我该怎么做...

回答 1 投票 0

c# winforms 显示完整 90 分钟而不是 1:30

我有c# label_time.Text = time.ToString("mm"); 它最多只显示 60 分钟,剩下的 30 分钟从 0 开始,最后显示 30。我该如何使它如此...

回答 1 投票 0

将 Range 或 DocumentFragment 转换为字符串

有没有办法在符合 W3C 的浏览器中获取 JavaScript Range 对象的 html 字符串? 例如,假设用户选择以下内容:Hello World 有可能...

回答 6 投票 0

JavaScript 模板文字是否保证调用 toString()?

常量数 = 42 const str = `我的号码是 ${num}` 在这段代码中,我对 num 到 string 的转换有什么保证? 是否保证只调用其 toString() 方法或者可以

回答 4 投票 0

C# 返回新字符串与 .ToString()

采取以下代码: 公共静态字符串ReverseIt(字符串myString) { char[] foo = myString.ToCharArray(); Array.Reverse(foo); 返回新字符串(foo); } 我明白字符串...

回答 4 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.