英文:
Parsing XML processing instructions
问题
我有一些处理指令,就像下面这样出现在我的XML文件的顶部:
<?ID Object="AUTO_REPORT_OBJECT" Version="1.0"?>
我想使用Go库读取Object和Version属性的值。我正在使用Go 1.19。
我的XML文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<?ID Object="AUTO_REPORT_OBJECT" Version="1.0"?>
<?xml-stylesheet type="text/xsl" href="../XML/ProdRep.xsl"?>
<!DOCTYPE Auto_Report SYSTEM "../XML/ProdRep.dtd" [
<!ELEMENT Auto_Report (Production_Report+)>
]>
<Auto_Report>
<Production_Report Type="AUTO">
...更多标签
</Production_Report>
</Auto_Report>
<?End?>
英文:
I've some processing instructions like the one below at the top of my XML file:
<?ID Object="AUTO_REPORT_OBJECT" Version="1.0"?>
I would like to read Object and Version attributes value using Go libraries. I'm using Go 1.19.
My XML file is like this:
<?xml version="1.0" encoding="UTF-8"?>
<?ID Object="AUTO_REPORT_OBJECT" Version="1.0"?>
<?xml-stylesheet type="text/xsl" href="../XML/ProdRep.xsl"?>
<!DOCTYPE Auto_Report SYSTEM "../XML/ProdRep.dtd" [
<!ELEMENT Auto_Report (Production_Report+)>
]>
<Auto_Report>
<Production_Report Type="AUTO">
... more tags
</Production_Report>
</Auto_Report>
<?End?>
答案1
得分: 3
就XML而言,在PI的内容中可以包含任何你喜欢的内容,所以XML解析器无法帮助解决这个问题 - 你必须手动解析内容。
一种选择是将PI的数据部分取出,以"<e "开头,以"/>"结尾,然后通过一个XML解析器进行解析。
英文:
As far as XML is concerned, you can have anything you like in the content of a PI, so XML parsers aren't going to help with this - you have to parse the content by hand.
One option would be to take the data part of the PI, put "<e " at the start and "/>" at the end, and then put it through an XML parser.
答案2
得分: 0
我不懂Go语言,但你可以使用Python 3.11解析这段代码。
import xml.etree.ElementTree as ET
for event, elem in ET.iterparse('your.xml', events=("pi")):
if event == "pi":
print(ET.tostring(elem))
请注意,这是Python代码,用于解析XML文件。它使用xml.etree.ElementTree
模块提供的iterparse
函数来遍历XML文件中的元素。在遍历过程中,如果事件类型是"pi"(处理指令),则打印出该元素的内容。
英文:
I don't know Go
, but you can parse this with python 3.11.
import xml.etree.ElementTree as ET
for event, elem in ET.iterparse('your.xml', events=("pi")):
if event == "pi":
print(ET.tostring(elem))
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论