XML解析器遍历包含XML树的文本文档,并允许使用层次结构中的信息。将此标记用于实现XML解析器的问题,或者通过使用给定语言的现有解析器生成的问题。
文档文档 = null; DocumentBuilder解析器 = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 文档 = parser.paser(xmlFilePath); 解析异常 萨克斯异常 IO异常 回来了
我的同事为有效负载中的每个元素提供了一个命名空间 ns0 以实现最佳实践,但我的解析器停止了工作。阅读有关该主题的更多内容,似乎声明每个元素的名称空间是......
我有一个像这样的XML: ... 我有一个像这样的XML: <?xml version="1.0" encoding="UTF-8"?> <TEI xmlns="http://www.tei-c.org/ns/1.0"> <teiHeader> ... </teiHeader> <text> <body> <head rend="Body A">DOCUMENT_TITLE</head> <div rend="entry"> <head rend="time">TIME_1</head> <p rend="Body A"> INFORMATION A</p> <p rend="content"> <hi rend="italic"> CONTENT1 </hi> </p> </div> <div rend="entry"> <head rend="time">TIME_2</head> <p rend="Body A"> INFORMATION A</p> <p rend="Body A"> INFORMATION A</p> </div> <div rend="entry"> <head rend="time">TIME_3</head> <p rend="Body A"> INFORMATION A</p> <p rend="content"> <hi rend="italic"> CONTENT3 </hi> </p> <div rend="entry"> <p rend="Body A"> INFORMATION A</p> <p rend="content"> <hi rend="italic"> CONTENT4 </hi> </p> </div> </body> </text> </TEI> ...有许多缺少的参数,但我想获得一个 data.frame,其中每个“div”都有一行,如下所示: div 时间 内容 1 时间1 内容1 2 时间2 不适用 3 时间3 内容3 4 不适用 内容4 当参数缺失时,使用 NA。 我尝试这样的方法 data_xml <- read_xml(xmlfile) div <-xml_find_all(data_xml, xpath = ".//div") df <- tibble::tibble( date = div %>% xml_text(), content = div %>% xml_find_first('./p[@rend="content"/hi[@rend="italic"]]') %>% xml_text() ) 但是 xml_find_all 确实返回一个空列表。 根据一些建议,我尝试这种方式,实际工作 doc <- htmlParse(xmlfile) div <- getNodeSet(doc, '//div') dates<- xpathSApply(doc,'//div/text()',xmlValue) abstracts<-unlist(xpathSApply(doc,'//p[@rend="content"]//hi[@rend="italic"]',xmlValue)) 我正确地获得了我想要的字符串,但我失去了对应性,因为许多 div 没有内容或没有时间信息的头部(意味着 div、日期、摘要有不同的长度)。有什么建议么? TIA 显示的输入格式错误,因此 read_xml 会给出错误。由于问题表明它有效,因此在将 XML 移动到问题时一定存在转录错误。我们在最后的注释中的第 4 个之前添加了一个。 由于 XML 使用命名空间,因此首先使用 xml_ns_strip 去除该命名空间以避免出现问题。然后形成适当的 xpath 表达式,生成所需的节点,并将其转换为变量 中的 dcf 格式(这是一种名称:值格式,其中每个字段位于单独的行上,并且空行分隔记录 - 有关详细信息,请参阅 ?read.dcf) dcf。使用 read.dcf 读取该内容,将生成的字符矩阵转换为数据帧,修复类型并将 div 列转换为序列号。 library(dplyr) library (xml2) doc <- read_xml(Lines) # see Note at end for Lines nodes <- doc %>% xml_ns_strip() %>% xml_find_all('//div | //head[@rend="time"] | //hi[@rend="italic"]') dcf <- sapply(nodes, function(x) if (xml_name(x) == "div") "\ndiv:1" else paste0(xml_attr(x, "rend"), ":", xml_text(x)) ) dcf dcf %>% textConnection() %>% read.dcf() %>% as.data.frame() %>% type.convert(as.is = TRUE) %>% setNames(c("div", "time", "content")) %>% mutate(div = cumsum(div)) 给予 div time content 1 1 TIME_1 CONTENT1 2 2 TIME_2 <NA> 3 3 TIME_3 CONTENT3 4 4 <NA> CONTENT4
使用 Python requests.post() 发送 XML Soap 请求
我确信我这样做是错误的,因为我对 Xml 或 SOAP 一无所知,但我正在尝试使用 Python requests.post() 发送 SOAP 请求。我想我可以把身体作为
我正在尝试使用一些 XML 文件来进行句子标记,同时保持文件的原始结构。这些文件看起来像这样: ...
请告诉我如何从该 XML 中提取 guid 字段?问题是 xmlns 参数的存在。目前返回空。 XML_text(col) 为 ( 选择 ' 请告诉我如何从该 XML 中提取 guid 字段?问题是 xmlns 参数的存在。目前返回空。 with XML_text(col) as ( select '<?xml version="1.0" encoding="UTF-8"?> <purchasePlan xmlns:ns2="http://zakupki.gov.ru/223fz/purchasePlan/1" xmlns="http://zakupki.gov.ru/223fz/types/1" xmlns:ns10="http://zakupki.gov.ru/223fz/decisionSuspension/1" xmlns:ns11="http://zakupki.gov.ru/223fz/disagreementProtocol/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://zakupki.gov.ru/223/integration/schema/TFF-13.1 https://zakupki.gov.ru/223/integration/schema/TFF-13.1/purchasePlan.xsd"> <body> <item> <guid>096c4bf6-d656-4441-9032-0b7c45423af1</guid> </item> </body> </purchasePlan>'::xml ) SELECT r.guid FROM XML_text as x, XMLTABLE('purchasePlan/body/item' passing x.col COLUMNS guid varchar(50) path './guid' ) as r ; 结果必须是“096c4bf6-d656-4441-9032-0b7c45423af1”。 请尝试以下解决方案。 您的 XML 有一个默认名称空间。它需要通过 xmlnamespaces(...) 子句声明并在 XPath 表达式中使用。 SQL with XML_text(col) as ( select '<?xml version="1.0" encoding="UTF-8"?> <purchasePlan xmlns:ns2="http://zakupki.gov.ru/223fz/purchasePlan/1" xmlns="http://zakupki.gov.ru/223fz/types/1" xmlns:ns10="http://zakupki.gov.ru/223fz/decisionSuspension/1" xmlns:ns11="http://zakupki.gov.ru/223fz/disagreementProtocol/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://zakupki.gov.ru/223/integration/schema/TFF-13.1 https://zakupki.gov.ru/223/integration/schema/TFF-13.1/purchasePlan.xsd"> <body> <item> <guid>096c4bf6-d656-4441-9032-0b7c45423af1</guid> </item> </body> </purchasePlan>'::xml ) SELECT r.guid FROM XML_text as x, XMLTABLE(xmlnamespaces('http://zakupki.gov.ru/223fz/types/1' AS "ns1"), '/ns1:purchasePlan/ns1:body/ns1:item' passing x.col COLUMNS guid varchar(50) path 'ns1:guid' ) as r ;
我是一名正在学习如何编码的学生。我被分配的任务是将数据从复杂的 XML 文件加载到列表中。我已经考虑了很长一段时间如何解决这个问题,这是......
如何避免 SQL Server 在使用 XQuery 时返回重复值
我在这里发现了一些与我所面临的问题很接近的问题,但没有一个解决了我的疑问。 当我将 XML 文档解析为 SQL 结果集时,我得到了一些重复值。 它...
ValueError:列的长度必须与 DataFrame.__setitem__(self, key, value) 中的键相同
在此输入图像描述 在此输入图像描述 ValueError:列的长度必须与键的长度相同 请帮帮我,谢谢.. 该程序用于将标签信息 xml 文件转换为 Pandas
我正在使用样式表通过 STX 转换以下 XML 文档。但是,注释元素中 Kite 之后的所有内容在解析时都会被忽略。 我如何访问...
我们有一个记录呼叫中心呼叫的平台,并在 wav 文件末尾添加一些 xml,其中保存有关该呼叫的重要元数据。 我正在尝试读取这些 wav 文件的文件夹和 p...
我有一个没有根元素的部分 XML 字符串。例如。: 一些文字 其他一些文字 我需要转换这个字符串...
在 shell 脚本中使用 xmlstarlet 读取脚本变量值,如果该字符串不存在,则插入到特定部分下的输出 xml 文件中
我在 shell 脚本中使用的 parse yaml 实用程序通过 eval 命令生成如下变量 policy1_name='ipfilter' policy1_scope='api' policy1_apiname='apiname' policy1_inboundsession='率-
我必须添加一个新行,如 我必须添加一个新行,如 <?xml version="1.0" encoding="UTF-8"?> <dblogs xmlns="http://url/xml/ns/dblogs" xmlns:xsi="http://url/2001/XMLSchema-instance" xmlns:pro="http://url/xml/ns/dblogs/ns/pro" xsi:schemaLocation="http://url/xml/ns/dblogs > <changeSet author="user_id" id="v3.0.0"> <tagDatabase tag="release/v3.0.0" /> </changeSet> <include file="./file_one.xml" /> <include file="./file_two.xml" /> </dblogs> 尝试了以下代码,它打印附加值,但实际上并未附加到文件。 import xml.etree.ElementTree as ET tree = ET.parse('pqr.xml') root = tree.getroot() b = ET.SubElement(root, 'include') b.text = './dml/release/v3.0.0/abc_changelog.xml' print ET.tostring(root) 您在以下行中缺少结束语“: xsi:schemaLocation="http://url/xml/ns/dblogs > 添加此代码时,您的代码对我有用,输出如下: b'<ns0:dblogs xmlns:ns0="http://url/xml/ns/dblogs" xmlns:ns1="http://url/2001/XMLSchema-instance" ns1:schemaLocation="http://url/xml/ns/dblogs">\n\n <ns0:changeSet author="user_id" id="v3.0.0">\n\n <ns0:tagDatabase tag="release/v3.0.0" />\n\n </ns0:changeSet>\n\n <ns0:include file="./file_one.xml" />\n\n <ns0:include file="./file_two.xml" />\n\n<include>./dml/release/v3.0.0/abc_changelog.xml</include></ns0:dblogs 请注意,在您的代码中,标签添加为: <include>./dml/release/v3.0.0/abc_changelog.xml</include> 为了使其以与其他元素相同的方式显示,您还希望包含命名空间(在 Python 中使用 ElementTree 发出命名空间规范)和文件参数(如何向 ElementTree 中的 SubElement 添加属性 (Python))
我们有一个如下所示的policy.xml文件,需要根据条件在下(入站或后端或出站)下的xml文件的每个会话下插入如下字符串...
`-:55:HTML 解析器错误:htmlParseEntityRef:期待 ';'`:使用 xmllint 清理 HTML 文件?
http://journals.im.ac.cn/cjbcn/ch/reader/view_abstract.aspx?file_no=gc19010159&flag=1 我想清理上述 URL 中的文件。但 xmllint 给出以下错误。有谁知道吗...
我想使用java将导入语句添加到现有的schema/xsd文件中,我们是否可以将它们添加到xsd中?,我确实尝试了如下但收到错误:“org.w3c.dom.DOMException:
使用 xmltodict 解析 XML 后,使用 Python 字典访问键和值
给定 XML 文件: 给定 XML 文件: <?xml version="1.0" standalone="yes"?> <!--COUNTRIES is the root element--> <WORLD> <country name="ABCDEF"> <event day="323" name="$abcd"> </event> <event day="23" name="$aklm"> </event> <neighbor name="B" direction="W" friend="T"></neighbor> <neighbor name="C" direction="E"></neighbor> <neighbor name="D" direction="W"></neighbor> </country> <country name="KLMNOP"> <event day="825" name="$nmre"> </event> <event day="329" name="$lpok"> </event> <event day="145" name="$dswq"> </event> <event day="256" name="$tyul"> </event> <neighbor name="D" direction="S"/> <neighbor name="E" direction="N" friend="T"/> </country> </WORLD> 然后我使用 Python 中的“xmltodict”库解析了这个 xml 文件: import xmltodict class XMLParser: def __init__(self, xml_file_path): self.xml_file_path = xml_file_path if not self.xml_file_path: raise ValueError("XML file path is not found./n") with open (self.xml_file_path, 'r') as f: self.xml_file = f.read() def parse_xml_to_json(self): xml_file = self.xml_file dict = xmltodict.parse(xml_file, attr_prefix='') for k in dict['WORLD']['country'][1]: if k == "name": print(dict.keys()) print(dict.values()) return dict xml_file_path = "file_path" xml_parser = XMLParser(xml_file_path) data = xml_parser.parse_xml_to_json() print(data) 但是,我收到错误,无法从该字典访问键和值。 错误:AttributeError:“str”对象没有属性“keys” 我想获得以下格式的输出: 所需输出: { "neighbor": [ { "Name": "B", "direction": "W", "Type": "ABCDEF" }, { "Name": "C", "direction": "E", "Type": "ABCDEF" }, { "Name": "D", "direction": "W", "Type": "ABCDEF" }, { "Name": "D", "direction": "S", "Type": "KLMNOP" }, { "Name": "E", "direction": "N", "Type": "KLMNOP" }, ] } 请建议,我是 xml 和 python 的新手。 一个简单的嵌套循环可以在这里工作: import xml.etree.ElementTree as ET xml = '''<WORLD> <country name="ABCDEF"> <event day="323" name="$abcd"> </event> <event day="23" name="$aklm"> </event> <neighbor name="B" direction="W" friend="T"></neighbor> <neighbor name="C" direction="E"></neighbor> <neighbor name="D" direction="W"></neighbor> </country> <country name="KLMNOP"> <event day="825" name="$nmre"> </event> <event day="329" name="$lpok"> </event> <event day="145" name="$dswq"> </event> <event day="256" name="$tyul"> </event> <neighbor name="D" direction="S"/> <neighbor name="E" direction="N" friend="T"/> </country> </WORLD>''' data = {'neighbor': []} root = ET.fromstring(xml) for country in root.findall('.//country'): country_name = country.attrib['name'] for neighbor in country.findall('neighbor'): data['neighbor'].append({'Type': country_name, 'Name': neighbor.attrib['name'],'direction': neighbor.attrib['direction']}) print(data) 输出 { 'neighbor': [ { 'Type': 'ABCDEF', 'Name': 'B', 'direction': 'W' }, { 'Type': 'ABCDEF', 'Name': 'C', 'direction': 'E' }, { 'Type': 'ABCDEF', 'Name': 'D', 'direction': 'W' }, { 'Type': 'KLMNOP', 'Name': 'D', 'direction': 'S' }, { 'Type': 'KLMNOP', 'Name': 'E', 'direction': 'N' } ] }
我想将xml反序列化为C#类 这是我正在使用的课程 面临获取 null 的问题12345 该字段还添加了一些额外的内容 诸如 Form_ID__c 之类的字段,