xml 相关问题

可扩展标记语言(XML)是一种灵活的结构化文档格式,用于定义人类和机器可读的编码规则。

如果标签之间不存在空格,C# XmlReader 将忽略标签

我有一个 XML 文件,所有 XML 都在一行,如下所示: CSX 亚特兰大赛区阿布维尔分队 阿布维尔分区从塔克开始......

回答 1 投票 0

Java - Jackson - 如何不逃脱 < to < character automatically when deserializing?

我有一个简单的 XML,其中包含包装器对象的 < character as <, then I wanted to deserialize these key-value elements as a map of 的转义字符串,方法是使用

回答 1 投票 0

使用 BeautifulSoup 解析带有子节点的 SEC EDGAR XML 表单数据

我正在尝试使用漂亮的 soup 和 xml 从 SEC 的 N-PORT-P/A 表格中抓取个人基金持有量。典型的提交如下所示,[链接在此][1],如下所示: 我正在尝试使用 beautiful soup 和 xml 从 SEC 的 N-PORT-P/A 表格中抓取个人基金持有量。典型的提交如下所示,[链接在此][1],如下所示: <edgarSubmission xmlns="http://www.sec.gov/edgar/nport" xmlns:com="http://www.sec.gov/edgar/common" xmlns:ncom="http://www.sec.gov/edgar/nportcommon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <headerData> <submissionType>NPORT-P/A</submissionType> <isConfidential>false</isConfidential> <accessionNumber>0001145549-23-004025</accessionNumber> <filerInfo> <filer> <issuerCredentials> <cik>0001618627</cik> <ccc>XXXXXXXX</ccc> </issuerCredentials> </filer> <seriesClassInfo> <seriesId>S000048029</seriesId> <classId>C000151492</classId> </seriesClassInfo> </filerInfo> </headerData> <formData> <genInfo> ... </genInfo> <fundInfo> ... </fundInfo> <invstOrSecs> <invstOrSec> <name>ARROW BIDCO LLC</name> <lei>549300YHZN08M0H3O128</lei> <title>Arrow Bidco LLC</title> <cusip>042728AA3</cusip> <identifiers> <isin value="US042728AA35"/> </identifiers> <balance>115000.000000000000</balance> <units>PA</units> <curCd>USD</curCd> <valUSD>114754.170000000000</valUSD> <pctVal>0.3967552449</pctVal> <payoffProfile>Long</payoffProfile> <assetCat>DBT</assetCat> <issuerCat>CORP</issuerCat> <invCountry>US</invCountry> <isRestrictedSec>N</isRestrictedSec> <fairValLevel>2</fairValLevel> <debtSec> <maturityDt>2024-03-15</maturityDt> <couponKind>Fixed</couponKind> <annualizedRt>9.500000000000</annualizedRt> <isDefault>N</isDefault> <areIntrstPmntsInArrs>N</areIntrstPmntsInArrs> <isPaidKind>N</isPaidKind> </debtSec> <securityLending> <isCashCollateral>N</isCashCollateral> <isNonCashCollateral>N</isNonCashCollateral> <isLoanByFund>N</isLoanByFund> </securityLending> </invstOrSec> Arrow Bidco LLC 是投资组合中的债券,其一些特征包含在文件中(CUSIP、CIK、余额、到期日等)。我正在寻找迭代每个单独的证券 (investOrSec) 并收集数据框中每个证券的特征的最佳方法。 我当前使用的代码是: import numpy as np import pandas as pd import requests from bs4 import BeautifulSoup header = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36", "X-Requested-With": "XMLHttpRequest"} n_port_file = requests.get("https://www.sec.gov/Archives/edgar/data/1618627/000114554923004968/primary_doc.xml", headers=header, verify=False) n_port_file_xml = n_port_file.content soup = BeautifulSoup(n_port_file_xml,'xml') names = soup.find_all('name') lei = soup.find_all('lei') title = soup.find_all('title') cusip = soup.find_all('cusip') .... maturityDt = soup.find_all('maturityDt') couponKind = soup.find_all('couponKind') annualizedRt = soup.find_all('annualizedRt') 然后迭代每个列表,根据每行中的值创建一个数据框。 fixed_income_data = [] for i in range(0,len(names)): rows = [names[i].get_text(),lei[i].get_text(), title[i].get_text(),cusip[i].get_text(), balance[i].get_text(),units[i].get_text(), pctVal[i].get_text(),payoffProfile[i].get_text(), assetCat[i].get_text(),issuerCat[i].get_text(), invCountry[i].get_text(),couponKind[i].get_text() ] fixed_income_data.append(rows) fixed_income_df = pd.DataFrame(equity_data,columns = ['name', 'lei', 'title', 'cusip', 'balance', 'units', 'pctVal', 'payoffProfile', 'assetCat', 'issuerCat', 'invCountry' 'maturityDt', 'couponKind', 'annualizedRt' ], dtype = float) 当包含所有信息时,这种方法效果很好,但通常有一个变量未被考虑在内。表单的一部分可能是空白的,或者发行人类别可能未正确填写,从而导致 IndexError。该投资组合包含我能够解析的 127 种证券,但可能缺少单一证券的年化回报率,从而失去了整齐创建数据框的能力。 此外,对于同时持有固定收益和股票证券的投资组合,股票证券不会返回 DebtSecs 子项的信息。有没有一种方法可以迭代这些数据,同时以最简单的方式清理它?即使为权益证券未引用的 DebtSec 子项添加“NaN”也是有效的响应。任何帮助将不胜感激! [1]:https://www.sec.gov/Archives/edgar/data/1618627/000114554923004968/primary_doc.xml 在我看来,这是处理问题的最佳方法。一般来说,EDGAR 文件非常难以解析,因此以下内容可能适用于其他文件,也可能不适用于其他文件,即使来自同一文件管理器也是如此。 为了让自己更轻松,因为这是一个 XML 文件,所以您应该使用 xml 解析器和 xpath。鉴于您要创建一个数据框,最合适的工具是 pandas read_xml() 方法。 因为 XML 是嵌套的,所以您需要创建两个不同的数据帧并将它们连接起来(也许其他人对如何处理它有更好的想法)。最后,虽然 read_xml() 可以直接从 url 读取,但在这种情况下,EDGAR 需要使用用户代理,这意味着您还需要使用 requests 库。 所以,大家一起: #import required libraries import pandas as pd import requests url = 'https://www.sec.gov/Archives/edgar/data/1618627/000114554923004968/primary_doc.xml' #set headers with a user-agent headers = {"User-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"} req = requests.get(url, headers=headers) #define the columns you want to drop (based on the data in your question) to_drop = ['identifiers', 'curCd','valUSD','isRestrictedSec','fairValLevel','debtSec','securityLending'] #the filing uses namespaces (too complicated to get into here), so you need to define that as well namespaces = {"nport": "http://www.sec.gov/edgar/nport"} #create the first df, for the securities which are debt instruments invest = pd.read_xml(req.text,xpath="//nport:invstOrSec[.//nport:debtSec]",namespaces=namespaces).drop(to_drop, axis=1) #crete the 2nd df, for the debt details: debt = pd.read_xml(req.text,xpath="//nport:debtSec",namespaces=namespaces).iloc[:,0:3] #finally, concatenate the two into one df: pd.concat([invest, debt], axis=1) 这应该输出您的 126 种债务证券(请原谅格式): lei title cusip balance units pctVal payoffProfile assetCat issuerCat invCountry maturityDt couponKind annualizedRt 0 ARROW BIDCO LLC 549300YHZN08M0H3O128 Arrow Bidco LLC 042728AA3 115000.00 PA 0.396755 Long DBT CORP US 2024-03-15 Fixed 9.50000 1 CD&R SMOKEY BUYER INC NaN CD&R Smokey Buyer Inc 12510CAA9 165000.00 PA 0.505585 Long DBT CORP US 2025-07-15 Fixed 6.75000 然后您可以使用最终的 df、添加或删除列等 您可以使用 MIT 许可的 datamule 包来完成此操作,该包可以处理下载和解析。免责声明:我是开发商。 from datamule import Filing, Downloader from pathlib import Path import os downloader = Downloader() downloader.download(form='NPORT-P',output_dir='NPORT',date=('2001-01-01','2024-11-01')) os.makedirs('NPORT_json', exist_ok=True) for file in Path('NPORT').iterdir(): filing = Filing(str(file), 'NPORT-P') filing.parse_filing() filing.write_json(f'NPORT_json/{file.name}.json') 您还可以直接访问馆藏数据,因为 Filing() 是一个可迭代对象。 pd.DataFrame(filing)

回答 2 投票 0

与 xslt:apply-templates 的混淆

我不明白应用模板在 XSLT 中是如何工作的。 现在我有这个 XML 文档: 我不明白应用模板在 XSLT 中是如何工作的。 现在我有了这个 XML 文档: <?xml version="1.0" encoding="UTF-8"?> <people> <person> <name>John Doe</name> <age>30</age> <occupation>Software Engineer</occupation> </person> <person> <name>Jane Smith</name> <age>28</age> <occupation>Graphic Designer</occupation> </person> <person> <name>Sam Brown</name> <age>35</age> <occupation>Data Analyst</occupation> </person> </people> 还有这个 XSLT: <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <!-- Output --> <xsl:output method="html" /> <!-- Default template --> <xsl:template match="/"> <html> <body> <xsl:apply-templates /> </body> </html> </xsl:template> <!-- Adding ages --> <xsl:template match="person"> <p> <xsl:value-of select="./name/text()" /> </p> </xsl:template> <!-- Adding names --> <xsl:template match="age"> <p> <xsl:value-of select="./text()" /> </p> </xsl:template> </xsl:stylesheet> 当我运行它时,我得到的结果是这样的: <html> <body> <p>John Doe</p> <p>Jane Smith</p> <p>Sam nkmk</p> </body> </html> 这是出乎意料的,因为我想要人们的姓名和年龄,因为我定义了这两个模板。 在 this 问题的答案之一中,如下所述 XSLT 默认模板规则的定义方式是,默认情况下,它们将匹配文档的顶部节点,然后递归处理每个子节点节点,一直到底部,很公平,所以从技术上讲,人们会期望处理person节点,然后是子节点,并且由于有年龄模板,因此应该将年龄添加到html中,但事实并非如此。 (另外,根据this问题的第一个答案,它甚至应该打印姓名和职业,因为我没有定义与文本匹配的模板,就像这样)。 鉴于我是 XSLT 新手,所有这些都让我感到非常困惑。 你能向我解释一下这是怎么回事吗? 您遗漏了报价的重要部分,即“默认情况下”。 您的模板匹配person会覆盖默认的内置模板 - 并且它不会将模板应用于age(或任何其他)子级person。因此,匹配 age 的模板永远不会被实例化,否则会处理 person 的其他子级的内置模板也不会被实例化。

回答 1 投票 0

如何使用 Python 替换 HTML 标签内文本中的 XML 特殊字符

我对Python还很陌生。我一直在从事一个网页抓取项目,该项目从各种网页中提取数据,使用这些数据构建一个新的 HTML 页面,并将该页面发送到文档管理

回答 1 投票 0

geojson 中的坐标顺序

我正在通过 GitHub 以 geojson 格式测试数据渲染,因为我想将其用于 INSPIRE 数据。 INSPIRE 数据采用 GML 3.2.1 格式。我已经从 http://services 下载了一个数据集...

回答 2 投票 0

使用quick_xml和serde序列化数据时如何添加xml声明?

我正在尝试使用quick_xml的serde功能在xml和rust之间进行序列化和反序列化。下面显示的一个最小示例效果很好。然而,当我序列化回 xml 时,我不再

回答 1 投票 0

Android Kotlin - 使 TextView 中的链接可点击

在 strings.xml 中我有关键字 by_continuing_you_agree_terms_and_policy 字符串 继续操作即表示您同意我们的服务条款和隐私...

回答 3 投票 0

如何在java中对XML进行转义

我需要对包含转义 XML 标签的 xml 字符串进行转义: < > & ETC... 我确实找到了一些可以执行此任务的库,但我宁愿使用可以执行此任务的单一方法...

回答 4 投票 0

如何提高xml解析性能

我有一个很大的 xml,其中包含许多记录作为子元素。有许多测试元素,每个测试元素内有许多 testchild 元素。大约有 200 个元素或 300 个或更多。作为...

回答 1 投票 0

使用 XQuery/XPath 计算多个 XML 文件中的不同值

我有几个 XML 文件,它们都具有相同的结构。我需要找到每个元素中出现的所有不同值并对每个不同的出现次数进行计数。 这样做的最佳方法是什么...

回答 1 投票 0

如何在准确保留结构的同时将 Python 字典转换为 XML 字符串并返回?

我需要将一些 json 转换为 xml,然后再转换回 json,最好保留结构。我已经非常接近了,但我找不到一种方法来使用 dicttoxml/xmltodict 来避免每个 l...

回答 1 投票 0

将 XSL-FO 转换为 HTML

我被要求查看一些旧的 XSL-FO 样式表并将它们转换为 XSLT (HTML),以便我可以获得 HTML 输出。 我能找到的唯一工具是 RenderX XSLFOToHTML 中的工具,但我不知道...

回答 1 投票 0

XSL 顺序排序执行

我正在尝试使用 XSL 根据其内部列表的排序对列表进行排序。 我有以下 XML 我正在尝试使用 XSL 根据其内部列表的排序对列表进行排序。 我有以下 XML <Shirt> <Material Name="Fleece"> <Color Name="Green"> <Details> <!--Omitted--> </Details> </Color> <Color Name="Blue"> <Details> <!--Omitted--> </Details> </Color> </Material> <Material Name="Cotton"> <Color Name="Red"> <Details> <!--Omitted--> </Details> </Color> <Color Name="Acolor"> <Details> <!--Omitted--> </Details> </Color> </Material> </Shirt> 我有以下 XSL <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" omit-xml-declaration="yes"/> <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> <!-Sort this first--> <xsl:template match="Shirt/Material"> <xsl:copy> <xsl:apply-templates select="Color|@*"> <xsl:sort select="@Name" order="ascending" /> </xsl:apply-templates> </xsl:copy> </xsl:template> <!-Sort this second--> <xsl:template match="Shirt"> <xsl:copy> <xsl:apply-templates select="Material|@*"> <xsl:sort select="Color/@Name" order="ascending" /> </xsl:apply-templates> </xsl:copy> </xsl:template> </xsl:transform> 我获得以下输出 <Shirt> <Material Name="Fleece"> <Color Name="Blue"> <Details> <!--Omitted--> </Details> </Color> <Color Name="Green"> <Details> <!--Omitted--> </Details> </Color> </Material> <Material Name="Cotton"> <Color Name="Acolor"> <Details> <!--Omitted--> </Details> </Color> <Color Name="Red"> <Details> <!--Omitted--> </Details> </Color> </Material> </Shirt> 我的目标是让材质“Cotton”成为列表中的第一个,因为按字母顺序排序时它的颜色为“AColor”。据我了解,转换会以不明确的顺序投影到输出树。但是,是否可以在 XSL 中“顺序”执行排序转换?首先对颜色列表进行排序,然后对材质列表进行排序? 另外,不幸的是我只能使用 XSLT 1.0 首先对颜色列表进行排序,然后根据材质列表进行排序? 试试这个方法: XSLT 1.0 + EXSLT 节点集() 函数 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" extension-element-prefixes="exsl"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:strip-space elements="*"/> <!-- identity transform --> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="Shirt"> <xsl:copy> <!-- pre-sort --> <xsl:variable name="pre-sort"> <xsl:apply-templates select="Material" mode="first-pass"/> </xsl:variable> <!-- output --> <xsl:apply-templates select="exsl:node-set($pre-sort)/Material"> <xsl:sort select="Color[1]/@Name"/> </xsl:apply-templates> </xsl:copy> </xsl:template> <xsl:template match="Material" mode="first-pass"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates select="Color"> <xsl:sort select="@Name" /> </xsl:apply-templates> </xsl:copy> </xsl:template> </xsl:stylesheet>

回答 1 投票 0

从 Companies House 的 iXBRL 文件中提取帐户

我可以通过 Companies House 的 API 下载 iXBRL 文件 (.xhtml)。现在我试图从文件中提取个人财务账户(例如现金、资产等)。 该文件是(例如...

回答 1 投票 0

Android:提供资源时区分设备分辨率

我有一个android项目为不同的屏幕分辨率提供不同的dimens.xml。我通过在 /res 文件夹中定义 value-swXXXdp 文件夹来实现此目的。 然而,我现在遇到了麻烦

回答 1 投票 0

从海康威视LPR相机获取车牌(仅返回最后20张车牌)如何检索更多?

我想从 LPR 海康威视相机检索车牌,但 xml 文件仅返回最后 20 个车牌。有人可以帮助我正确定义 xml 参数以检索更多注册表吗? 发布网址:.../...

回答 1 投票 0

PowerShell XML。 (点)符号,如何读取具有属性的元素的值?

早上好,我有一个 XML 文件,但无法读取已定义属性的节点的内部 html。 文件: ...

回答 1 投票 0

将 Xml 转换为 java 对象,忽略元符号

我尝试将xml转换为java对象。所有 xml 转换都很好,但如果一个字段具有 & 值,我会得到异常 `jakarta.xml.bind.UnmarshalException 带有链接异常: [org.xml.sax.

回答 1 投票 0

摆脱 xsi:type 并使用标签名称来代替

我有一些派生类要序列化为 XML: 公共抽象类级别 { } [XmlRoot("SubLevel1")] 公开课 SubLevel1 : 级别 { 公共字符串 prop1 { 得到;放; } p...

回答 1 投票 0

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