xml-parsing 相关问题

XML解析器遍历包含XML树的文本文档,并允许使用层次结构中的信息。将此标记用于实现XML解析器的问题,或者通过使用给定语言的现有解析器生成的问题。

Xml快速解析为字典

我想将XML响应转换为字典,我已将XML响应粘贴在 ...] >>

回答 1 投票 0

使用PowerShell替换嵌套XML中的值

如何使用Powershell替换嵌套xml中的值?如何使用PowerShell将“ Racers”,“ Pacers”,“ Losers”的值从“ false”替换为“ True”? &... ] >>

回答 1 投票 0

使用命令行将XML元素从一个文件复制到另一个文件

如何使用命令行工具将元素及其包含的所有内容从XML文件复制到另一个文件?例如,有一种方法可以使用...

回答 1 投票 0

解析YouTube-Xpath以检索YouTube频道的个人资料图片和描述

我想将多个YouTube频道的个人资料图片导入Google表格电子表格。到目前为止,这是我能够检索到的信息:要检索...

回答 1 投票 0

如何从嵌套属性获取值?

[[[[[[[[[[[[[>] 您应该考虑按顺序查询XML report =>location => day ==> hour。尝试一下:

回答 1 投票 0

谁能帮我从.XML中获取价值

我的代码在selenium-java中,我需要在XML边缘浏览器中打开的.XML中的Identifiers(第二行,而不是第四行)的值。我的XML: ... ] >>

回答 1 投票 0

回答 1 投票 6

查找在Java中用双引号括起来的子字符串

我的代码:字符串内容='

回答 2 投票 0

带有空XML节点的SQL XPath比较变量

我有以下代码:声明@mydoc xml声明@myPhone nvarchar(12)='2223334445'声明@lastName nvarchar(100)='约翰'声明@myEmail nvarchar(100)=空集@mydoc =' ...

回答 1 投票 0

XAML文件中标签的数量

我有一个XAML文件,其中的标签是这样的: 您可以使用简单的XPath-1.0表达式,例如 count(//ActorName[@Enabled='True']) 使用Java。只需根据需要调整以下XPathExpression。当然,文件名可以是sample.xaml或类似名称。这是示例代码: import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.ParserConfigurationException; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import org.w3c.dom.Node; import org.w3c.dom.Element; import org.xml.sax.SAXException; public class a { public static void main(String[] args) { try { File inputFile = new File("sample.xml"); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); dbFactory.setValidating(false); DocumentBuilder dBuilder; dBuilder=dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(inputFile); doc.getDocumentElement().normalize(); XPath xPath = XPathFactory.newInstance().newXPath(); String XPathExpression = "count(//ActorName[@Enabled='True'])"; // Get the count of the elements with the given properties Number cnt = (Number)xPath.compile(XPathExpression).evaluate(doc, XPathConstants.NUMBER); // Convert the Float value to an int value and output System.out.println("Items: "+cnt.intValue()); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (XPathExpressionException e) { e.printStackTrace(); } } }

回答 1 投票 0

根据新图像的宽度和高度更改xml文件中的边界框坐标

我正在尝试针对新图像的宽度和高度转换xml文件中的边界框坐标。下面给出了示例xml文件: ] [] 为了改善代码,您可以: 计算循环前的比率 删除无用的浮点转换 删除除法(除法是一个乘法) 不需要对浮子进行四舍五入 将语句按连贯的顺序分组 将allBoxes重命名为box,因为它仅表示一个box 这里是可能的代码: import xml.etree.ElementTree as ET label_file = '1.xml' tree = ET.parse(label_file) root = tree.getroot() r_w = 1080 / 1820 r_h = 720 / 940 for image in root.findall('image'): image.attrib['width'] = '1080' # Original width = 1820 image.attrib['height'] = '720' # Original width = 940 for box in image.findall('box'): xmin = float(box.attrib['xtl']) ymin = float(box.attrib['ytl']) xmax = float(box.attrib['xbr']) ymax = float(box.attrib['ybr']) xminNew = xmin * r_w yminNew = ymin * r_h xmaxNew = xmax * r_w ymaxNew = ymax * r_h box.attrib['xtl'] = str(xminNew) box.attrib['ytl'] = str(yminNew) box.attrib['xbr'] = str(xmaxNew) box.attrib['ybr'] = str(ymaxNew) tree.write(label_file) 您可以通过将所有这些包装在函数中以提高可用性,清晰度和可能的重用性来进一步改进此代码。 [使用Python的第三方模块lxml考虑参数化的XSLT解决方案,您可以在其中传递来自Python的新的width和height值,以将公式动态应用于XML属性。 XSLT (另存为.xsl文件) lxml Python ((无<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output indent="yes" encoding="utf-8"/> <xsl:strip-space elements="*"/> <!-- PARAMS WITH DEFAULTS --> <xsl:param name="new_width" select="1080"/> <xsl:param name="new_height" select="720"/> <!-- IDENTITY TRANSFORM --> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <!-- WIDTH AND HEIGHT ATTRS CHANGE --> <xsl:template match="image"> <xsl:copy> <xsl:apply-templates select="@*"/> <xsl:attribute name="width"><xsl:value-of select="$new_width"/></xsl:attribute> <xsl:attribute name="height"><xsl:value-of select="$new_height"/></xsl:attribute> <xsl:apply-templates select="node()"/> </xsl:copy> </xsl:template> <!-- X ATTRS CHANGE --> <xsl:template match="box/@xbr|box/@xtl"> <xsl:variable select="ancestor::image/@width" name="curr_width"/> <xsl:attribute name="{name(.)}"> <xsl:value-of select="format-number(. div ($curr_width div $new_width) , '#.00000')"/> </xsl:attribute> </xsl:template> <!-- Y ATTRS CHANGE --> <xsl:template match="box/@ybr|box/@ytl"> <xsl:variable select="ancestor::image/@height" name="curr_height"/> <xsl:attribute name="{name(.)}"> <xsl:value-of select="format-number(. div ($curr_height div $new_height), '#.00000')"/> </xsl:attribute> </xsl:template> </xsl:stylesheet> 循环或for逻辑) if 输出 import lxml.etree as et # LOAD XML AND XSL SCRIPT xml = et.parse('Input.xml') xsl = et.parse('Script.xsl') # PASS PARAMETERS TO XSLT transform = et.XSLT(xsl) result = transform(xml, new_width = et.XSLT.strparam(str(1080)), new_height = et.XSLT.strparam(str(720))) # SAVE RESULT TO FILE with open("Output.xml", 'wb') as f: f.write(result)

回答 2 投票 1

snowflake:无法递归解析xml

我有这个xml [[[[[]]]]]]]]]]]] 解析分层XML就像解开Gordian结一样。您可以嵌套get,xmlget,lateral和flatten子句,但这变得难以阅读且难以维护。我推荐的方法是使用CTE逐步进行。 您可以测试以下CTE。假设您的XML位于定义为类型变体的名为“ XML”的列中的名为“ SRC”的表中。从那里,您可以根据需要进行修改以使用复制语句。 with IMAGES("VALUE") as ( select "VALUE" from SRC, lateral flatten(SRC.XML:"$") IMAGES where "KEY" = '$' ), IMAGE_ARRAY(IMAGE) as ( select I."VALUE" from IMAGES, lateral flatten(IMAGES."VALUE") I where "KEY" = '$' ), IMAGE(IMAGE_XML) as ( select "VALUE" from IMAGE_ARRAY, lateral flatten(input => to_array(IMAGE)) IMG ) select get(IMAGE_XML, '@path')::string as PATH, get(get(IMAGE_XML, '$'), '@xml:lang')::string as LANG from IMAGE ;

回答 1 投票 0

如何使用xquery搜索具有多个相同类型节点的SQL XML列?

我在SQL中有一列保存XML数据。我想搜索它,但是目前没有得到想要的结果。 XML具有以下格式: [[[[] ]

回答 1 投票 1

对Scopus Search API进行搜索时出错,并将结果分批保存到xml文件中

[我正在尝试使用rscopus并使用从https://github.com/christopherBelter/scopusAPI获得的功能从Scopus提取摘要,我使用我的大学帐户拥有API密钥,但是...

回答 1 投票 0

解析从第三方Web服务读取的未知XML

我正在尝试分析这样的XML值(从第三方Web服务获得),将这些值插入tStringlist中以供以后检查它们...] >>

回答 1 投票 1

读取xml文件包含破坏日语字符的多语言字符

具有如下编码的Xml文件:包含一些如下所述的日语字符:

回答 1 投票 0

如果使用python在给定列表中出现另一个属性,如何提取XML属性?

我有一个linkId的列表。 links_o_i = [652518、345004、225317、177396、551734]此外,我有一个XML文件,其结构如下:

回答 1 投票 0

此页面包含以下错误:第2行第6列错误:仅在文档开头允许XML声明

我无法找到解决方案,请帮助。下面是代码。在此先感谢require_once“ db.php”; $ sQuery =“从汽车中选择价格,年,车号”; $ result = $ conn-> query(...

回答 1 投票 0

使用Python和ElementTree排序XML文档

我正在尝试重组一些xm l文件,这些文件包含完整路由的多个段,这些段的结构如下: GPSRoute.XML ]]]] < [ 我认为,直到到达xpath 3.1为止,还没有真正的方法对xml进行排序,但是有可能在此方面产生混乱。 [请注意,由于您问题中的xml无效(您有未声明的名称空间),因此我使用了更为宽容的html解析器。使用您的实际代码,您应该使用xml解析器,如下所示。 此代码的作用是从每个<name>父节点收集每个<trkseg>子节点的节点值(即您的目标编号),将它们保存到列表中,对列表进行排序,然后再次使用排序后的列表按此排序顺序选择<trkseg>节点,并使用它们(以及开始和结束标记)来创建新的xml。 import lxml.html as lh # with actual xml you would probably use "from lxml import etree" trk = """your xml above""" doc = lh.fromstring(trk) # with actual xml you should probably use "doc = etree.XML(trk)" names = [] new_trk = """<trk> <name>GPSRoute.XML</name>""" # this is the preamble which is left untouched for nam in doc.xpath('//extensions//name'): names.append(nam.text) #grab the numbers for name in sorted(names): #sort the grabbed numbers target = doc.xpath(f'//trkseg[.//name/text()={name}]') for t in target: new_trk += lh.tostring(t).decode() new_trk += '</trk>' # append the closing tag, which is also left untouched print(new_trk) 输出: <trk> <name>GPSRoute.XML</name><trkseg> <trkpt lat="37.077888" lon="-112.242783"> <ele>1688.00</ele> <time>2020-04-18T01:56:39.80Z</time> </trkpt> <extensions> <name>1</name> <color>#00ce00</color> </extensions> </trkseg> <trkseg> <trkpt lat="37.077882" lon="-112.242785"> <ele>1688.00</ele> <time>2020-04-18T01:56:39.80Z</time> </trkpt> <extensions> <name>14</name> <color>#00ce00</color> </extensions> </trkseg> </trk>

回答 1 投票 0

Async / Await order [duplicate]

我正在研究一个小型解析器,该解析器同时查看rss.xml文件并从我在xml项内找到的链接中提取信息。我现在可以获得我正在寻找的所有信息,现在我的...

回答 2 投票 0

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