以此xml文件为例: -
<xyz version="1.0">
<lives>
<life key="1">
<section name="Application123">
<disclosure type="alcohol">
<disclosure type="build">
<internal>
<height> data </height>
<weight>data</weight>
</internal>
</disclosure>
<disclosure type="drug">
<disclosure type="tobacco">
</section>
</life>
</lives>
</xyz>
我想要一个查询,它给出了路径以及属性名称和属性值。 假设,我查询&#34; build&#34;,然后我想要所有路径如下: -
xyz/lives/life[key="1"]/section[name="Application123"]/disclosure[type="build"]/internal/height
我能够使用(在xquery中工作)
来获取路径declare function local:path-to-node( $nodes as node()* ) as xs:string* {
$nodes/string-join(ancestor-or-self::*/name(.), ''/'')
如下:
xyz/lives/life/section/disclosure/internal/height
但我也要求包含属性名称及其值。 有什么建议朋友吗?
答案 0 :(得分:0)
在XPath中,属性需要class RegisterSerializer(serializers.Serializer):
email = serializers.EmailField(required=allauth_settings.EMAIL_REQUIRED)
first_name = serializers.CharField(required=True, write_only=True)
last_name = serializers.CharField(required=True, write_only=True)
address = serializers.CharField(required=True, write_only=True)
user_type = serializers.ChoiceField(
choices=(('Farmer', 'Farmer'),('Windmill owner', 'Windmill owner'),('Solar panel owner', 'Solar panel owner'),),
style={'base_template': 'radio.html'},
required=True, write_only=True)
password1 = serializers.CharField(required=True, write_only=True)
password2 = serializers.CharField(required=True, write_only=True)
def validate_email(self, email):
email = get_adapter().clean_email(email)
if allauth_settings.UNIQUE_EMAIL:
if email and email_address_exists(email):
raise serializers.ValidationError(
_("A user is already registered with this e-mail address."))
return email
def validate_password1(self, password):
return get_adapter().clean_password(password)
def validate(self, data):
if data['password1'] != data['password2']:
raise serializers.ValidationError(
_("The two password fields didn't match."))
return data
def get_cleaned_data(self):
return {
'first_name': self.validated_data.get('first_name', ''),
'last_name': self.validated_data.get('last_name', ''),
'address': self.validated_data.get('address', ''),
'user_type': self.validated_data.get('user_type', ''),
'password1': self.validated_data.get('password1', ''),
'email': self.validated_data.get('email', ''),
}
def save(self, request):
adapter = get_adapter()
user = adapter.new_user(request)
self.cleaned_data = self.get_cleaned_data()
adapter.save_user(request, user, self)
setup_user_email(request, user, [])
user.save()
return user
。
@