XML 요소를 대체할 수 있는 UNIX 명령이 있습니까? (XPath의 sed와 같은가요?)

XML 요소를 대체할 수 있는 UNIX 명령이 있습니까? (XPath의 sed와 같은가요?)

다음을 수행하는 파이프 친화적인 프로그램이 있습니까?

  • XML 문서
  • 대상 요소를 나타내는 XPath 표현식
  • 원하는 교체

? sedXML(요소, 공백 등)에 대해 잘 알고 있지만 관련 지식이 있습니까 ?

답변1

XMLStarlet은 XML을 편집할 수 있으며 파이프에서 사용하는 것이 좋습니다.

xmlstarlet edit \
    -N "b=http://www.springframework.org/schema/beans" \
    -u '/b:beans/b:bean[@id="stun1"]/b:constructor-arg/@value' \
    -v "stun.example.com \
    -L servers.xml

cat servers.xml | xmlstarlet edit -u <xpath> -v <value>

XMLStarlet은 UNIX grep, sed, awk, diff에서 수행되는 방식과 유사한 방식으로 간단한 셸 명령 세트를 사용하여 XML 문서와 파일을 쿼리, 변환, 검증 및 편집하는 명령줄 유틸리티(툴킷) 세트입니다. 패치, 조인 등의 명령.

XMLStarlet은 다음과 같이 출시된 오픈 소스 무료 소프트웨어입니다.MIT 라이센스상업적, 비상업적 용도 모두 무료로 사용하고 배포할 수 있는 서비스입니다.

https://xmlstar.sourceforge.net/

https://en.m.wikipedia.org/wiki/XMLStarlet

답변2

XSLT를 사용하거나 배우는 것이 마음에 들지 않는다면 다음이 있습니다.xsltproc이를 수행할 수 있는 유틸리티입니다.

답변3

XMLSH에는 명령이 있습니다고정그것은 당신의 매개변수에 맞을 수도 있습니다.

고정xpath 표현식을 평가하고 결과 문서를 출력하는 모든 일치 노드를 편집합니다.

관련 정보