Je veux extraire des mots (texte) d'un exemple XML donné:
ÐаÑÑиден Ð½Ð¾Ð¼ÐµÑ 2UW01AA ÐÐ¾Ð¼ÐµÑ Ð½Ð° модела HP 14.1 Business Sleeve Line Business Screen size 14.1" Material Polyester Color Black
comme ceci:
<description> [ÐаÑÑиден номеÑ]: 2UW01AA [ÐÐ¾Ð¼ÐµÑ Ð½Ð° модела]: HP 14.1 Business Sleeve [Line]: Business [Screen size]: 14.1" [Material]: Polyester [Color]: Black [Dimensions]: [more] </description>
Quel chemin x exactement puis-je utiliser pour ce résultat?
3 Réponses :
XPath vous donnera l'élément de description, puis vous pouvez utiliser le remplacer pour supprimer les crochets ou les remplacer par des sauts de ligne.
Quelque chose comme ça, bien que les expressions régulières devront être plus compliquées si vous devez gérer les crochets dans les valeurs comme [plus]
replace(replace(normalize-space(description), '\[', '
'), '\]:','')
Vous pouvez utiliser fn: replace ()
fonction avec un groupe de capture de regex:
replace(/description, "\[(.*?)\]:", " $1")
Ok, mais j'ai besoin d'extraire ces champs via WP All Import dans les attributs woocommerce, j'ai besoin d'une clé pour le premier mot et d'une valeur pour le second, c'est mon GROS problème ...
@chrisbg: Puisque vous n'avez rien demandé sur les paires attribut-valeur, vous devriez publier une nouvelle question plutôt que d'essayer d'étendre celle-ci dans les commentaires. Et vous devriez voter pour / accepter les réponses ici en fonction de ce que vous avez réellement demandé. Merci.
Une autre façon de le faire avec XPath 2.0:
ÐаÑÑиден Ð½Ð¾Ð¼ÐµÑ 2UW01AA ÐÐ¾Ð¼ÐµÑ Ð½Ð° модела HP 14.1 Business Sleeve Line Business Screen size 14.1" Material Polyester Color Black Dimensions
Sortie:
translate(substring-before(substring-after(//description,"["),": ["),"[]:",codepoints-to-string(10) )
Super, je dois les mettre dans les attributs woocommerce en tant que paire clé: valeur. Qu'est-ce que xPath pour le premier et le deuxième mot?
@chrisbg: Encore une fois, veuillez poster une nouvelle question avec cette nouvelle demande, et voter pour / accepter ces réponses en fonction de la question réellement posée. Merci.