使用beautifulsoup和不同的XML类型将XML转换为python

使用beautifulsoup和不同的XML类型将XML转换为python,python,sql,xml,beautifulsoup,mysql-python,Python,Sql,Xml,Beautifulsoup,Mysql Python,我正在处理一些xml,我现在的工作是获取xml并将一些数据发送到SQL db 问题是,我必须处理以下类型的xml文档: 我有“cpc-definition-A.xml”: A46B3/04由可模制材料制成,例如金属、纤维素衍生物、塑料(A46B1/00优先) 与本组分类相关的参考文献 猪鬃和载体或主体一体成型 A46B1/00 和“cpc-scheme-A.xml”: A46B3/04由可模塑材料制成,例如金属、纤维素衍生物、塑料A46B1/00优先 与文件上的完全相同(每个文件上有数千个)

我正在处理一些xml,我现在的工作是获取xml并将一些数据发送到SQL db

问题是,我必须处理以下类型的xml文档:

我有“cpc-definition-A.xml”:

A46B3/04由可模制材料制成,例如金属、纤维素衍生物、塑料(A46B1/00优先)
与本组分类相关的参考文献
猪鬃和载体或主体一体成型
A46B1/00
和“cpc-scheme-A.xml”:

A46B3/04由可模塑材料制成,例如金属、纤维素衍生物、塑料A46B1/00优先
与文件上的完全相同(每个文件上有数千个)

有些信息在一个,但有些没有,我想知道为什么有2个文件,以获得完整的信息。。。 这是我第一次使用XML,我在任何地方都找不到

为了用python解析为SQL,我将使用bs4和MySQLdb中的BeautifulSoup,这是最好的主意,还是有人有更好的主意


不管怎样,我知道这真的是个难题,但我真的需要解决它…谢谢

您可以将XML模式视为元数据;它提供了有关xml文档的信息,这些信息是人类可读和机器可处理的(仅次于其他内容)。有关xml模式的更多信息


如果您想这样做的话,您完全可以使用BeautifulSoup解析XML文件和MySQLdb进行db交互:)

由于代码原因,请回答这里的问题

例如,我有:

例如,我有:

'<classification-item breakdown-code="false" not-allocatable="false" level="9" additional-only="false" sort-key="A42B1/06" definition-exists="false" ipc-concordant="A42B1/06" date-revised="2013-01-01" status="published"><classification-symbol>A42B1/06</classification-symbol><class-title date-revised="2013-01-01"><title-part><text scheme="ipc">Caps with flaps</text></title-part><title-part><text scheme="ipc">Motoring caps</text></title-part><title-part><text scheme="ipc">Caps with means for protecting the eyes, ears, or nape of neck </text><reference><text scheme="ipc">ear and nape protecting devices in general <class-ref scheme="cpc">A41D</class-ref></text></reference></title-part><title-part><text scheme="ipc">Caps with airpads or removable linings</text></title-part></class-title>
<classification-item breakdown-code="false" not-allocatable="false" level="10" additional-only="false" sort-key="A42B1/061" definition-exists="false" ipc-concordant="A42B1/06" date-revised="2013-01-01" status="published"><classification-symbol>A42B1/061</classification-symbol><class-title date-revised="2013-01-01"><title-part><CPC-specific-text><text scheme="cpc">Caps or soft head coverings with means for protecting the eyes; Uniform caps</text></CPC-specific-text></title-part></class-title>
<classification-item breakdown-code="false" not-allocatable="false" level="11" additional-only="false" sort-key="A42B1/062" definition-exists="true" ipc-concordant="A42B1/06" date-revised="2013-01-01" status="published"><classification-symbol>A42B1/062</classification-symbol><class-title date-revised="2013-01-01"><title-part><CPC-specific-text><text scheme="cpc">Peaks; Visors</text></CPC-specific-text></title-part></class-title>
<classification-item breakdown-code="false" not-allocatable="false" level="12" additional-only="false" sort-key="A42B1/063" definition-exists="false" ipc-concordant="A42B1/06" date-revised="2013-01-01" status="published"><classification-symbol>A42B1/063</classification-symbol><class-title date-revised="2013-01-01"><title-part><CPC-specific-text><text scheme="cpc">with stiffening means</text></CPC-specific-text></title-part></class-title></classification-item>'
'A42B1/06带襟翼的帽带保护眼睛、耳朵或颈背、耳朵和颈背的装置的活动帽一般为A41DCAP,带有气垫或可拆卸衬里
A42B1/061带眼睛保护装置的帽子或软头罩;统一帽
A42B1/062峰值;面纱
A42B1/063,带加固装置'
我需要得到它的4级,但它有4级和1级


这在模式中重复了很多次,并且仅在其上进行分级。

谢谢!但为什么在模式中,例如,有一些标记没有一个标记?bs4认识到这一点吗?你的意思是标签没有正确关闭吗?我没有使用bs4,但我想如果标签没有关闭,它会抛出一个错误。要处理此问题,您可以在任何情况下手动将标记添加到文件/字符串中。当然,只有当你确定你想这样做的时候,你才可以一行一行地读,如果bs4不能处理它,试着添加,然后试着再次解析该行。或者,无法使用bs4并在行中搜索级别。
<classification-item breakdown-code="false" not-allocatable="false" level="8" additional-only="false" sort-key="A46B3/04" definition-exists="true" ipc-concordant="A46B3/04" date-revised="2013-01-01" status="published"><classification-symbol>A46B3/04</classification-symbol><class-title date-revised="2013-01-01"><title-part><text scheme="ipc">by mouldable materials, e.g. metals, cellulose derivatives, plastics </text><reference><text scheme="ipc"><class-ref scheme="cpc">A46B1/00</class-ref> takes precedence</text></reference></title-part></class-title></classification-item>
'<classification-item breakdown-code="false" not-allocatable="false" level="9" additional-only="false" sort-key="A42B1/06" definition-exists="false" ipc-concordant="A42B1/06" date-revised="2013-01-01" status="published"><classification-symbol>A42B1/06</classification-symbol><class-title date-revised="2013-01-01"><title-part><text scheme="ipc">Caps with flaps</text></title-part><title-part><text scheme="ipc">Motoring caps</text></title-part><title-part><text scheme="ipc">Caps with means for protecting the eyes, ears, or nape of neck </text><reference><text scheme="ipc">ear and nape protecting devices in general <class-ref scheme="cpc">A41D</class-ref></text></reference></title-part><title-part><text scheme="ipc">Caps with airpads or removable linings</text></title-part></class-title>
<classification-item breakdown-code="false" not-allocatable="false" level="10" additional-only="false" sort-key="A42B1/061" definition-exists="false" ipc-concordant="A42B1/06" date-revised="2013-01-01" status="published"><classification-symbol>A42B1/061</classification-symbol><class-title date-revised="2013-01-01"><title-part><CPC-specific-text><text scheme="cpc">Caps or soft head coverings with means for protecting the eyes; Uniform caps</text></CPC-specific-text></title-part></class-title>
<classification-item breakdown-code="false" not-allocatable="false" level="11" additional-only="false" sort-key="A42B1/062" definition-exists="true" ipc-concordant="A42B1/06" date-revised="2013-01-01" status="published"><classification-symbol>A42B1/062</classification-symbol><class-title date-revised="2013-01-01"><title-part><CPC-specific-text><text scheme="cpc">Peaks; Visors</text></CPC-specific-text></title-part></class-title>
<classification-item breakdown-code="false" not-allocatable="false" level="12" additional-only="false" sort-key="A42B1/063" definition-exists="false" ipc-concordant="A42B1/06" date-revised="2013-01-01" status="published"><classification-symbol>A42B1/063</classification-symbol><class-title date-revised="2013-01-01"><title-part><CPC-specific-text><text scheme="cpc">with stiffening means</text></CPC-specific-text></title-part></class-title></classification-item>'