質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Namespace

各要素の名前の重複による衝突が起こらないよう、一意の名前をつけなければならない範囲のことであり、また、プログラミングにおける識別名を付加する機能のをNamespace(名前空間)と呼ぶ。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1961閲覧

Pythonで名前空間付きXMLの内容を取得するには

hidek015

総合スコア11

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Namespace

各要素の名前の重複による衝突が起こらないよう、一意の名前をつけなければならない範囲のことであり、また、プログラミングにおける識別名を付加する機能のをNamespace(名前空間)と呼ぶ。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/04/19 02:27

編集2022/04/19 03:04

XML

1<?xml version="1.0" encoding="utf-8" standalone="no"?> 2<!DOCTYPE business:PatentDocumentAndRelated SYSTEM "/DTDS/ExternalStandards/ipphdb-entities.dtd"[]> 3<business:PatentDocumentAndRelated xmlns:base="http://www.sipo.gov.cn/XMLSchema/base" xmlns:business="http://www.sipo.gov.cn/XMLSchema/business" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:tbl="http://oasis-open.org/specs/soextblx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sipo.gov.cn/XMLSchema/business /DTDS/PatentDocument/Elements/OtherElements.xsd" xsdVersion="V2.2.1" file="CN102014000010217CN00001039169870BFULZH20210305CN00D.XML" dateProduced="20210227" status="C" lang="zh" country="CN" docNumber="103916987" kind="B" datePublication="20210305"> 4 <business:BibliographicData> 5 <business:PriorityDetails> 6 <business:Priority kind="international" dataFormat="original" sourceDB="national office" sequence="1"> 7 <base:WIPOST3Code>KR</base:WIPOST3Code> 8 <base:DocNumber>10-2013-0002680</base:DocNumber> 9 <base:Date>20130109</base:Date> 10 </business:Priority> 11 <business:Priority kind="international" dataFormat="original" sourceDB="national office" sequence="2"> 12 <base:WIPOST3Code>KR</base:WIPOST3Code> 13 <base:DocNumber>10-2013-0124787</base:DocNumber> 14 <base:Date>20131018</base:Date> 15 </business:Priority> 16 <business:Priority kind="international" dataFormat="standard" sequence="1"> 17 <base:WIPOST3Code>KR</base:WIPOST3Code> 18 <base:DocNumber>102013000002680</base:DocNumber> 19 <base:Date>20130109</base:Date> 20 </business:Priority> 21 <business:Priority kind="international" dataFormat="standard" sequence="2"> 22 <base:WIPOST3Code>KR</base:WIPOST3Code> 23 <base:DocNumber>102013000124787</base:DocNumber> 24 <base:Kind>A</base:Kind> 25 <base:Date>20131018</base:Date> 26 </business:Priority> 27 </business:PriorityDetails> 28 </business:BibliographicData> 29</business:PatentDocumentAndRelated> 30

pythonで名前空間付きXMLを操作する方法がいまいち理解できないのですが、例えば上記XMLの<base:DocNumber>の内容をすべて抽出するにはどのようにすればいいでしょうか?
下記コードではうまく取得できません。

python

1import xml.etree.ElementTree as ET 2tree = ET.parse('test2.xml') 3root = tree.getroot() 4 5for Priority in root.findall('{http://www.sipo.gov.cn/XMLSchema/business}Priority'): 6 DocNumber = Priority.find('{http://www.sipo.gov.cn/XMLSchema/base}DocNumber') 7 print(DocNumber.text)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

int32_t

2022/04/19 02:58

今のままだと丸投げ質問になっているので、少しでもコードを書いて、具体的にどこが理解できないのか聞いてください。
guest

回答1

0

ベストアンサー

python

1for Priority in root.findall('{http://www.sipo.gov.cn/XMLSchema/business}Priority'):

findall() に(名前空間と)タグ名のみを指定した場合、対象要素の子要素のみを探します。rootbusiness:PatentDocumentAndRelated で、business:Priority はその子要素ではないので見つかりません。ここでは './/{http://www.sipo.gov.cn/XMLSchema/business}Priority' と書いて子孫要素すべてから探しましょう。

XPathサポート

投稿2022/04/19 03:59

int32_t

総合スコア21929

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hidek015

2022/04/19 04:17

なるほど。凄く良く理解できました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問