XML 파일로 가득 찬 폴더가 있습니다. 각 노드에서 동일한 노드의 노드 값을 가져와이 값을 단일 텍스트 파일에 목록으로 써야합니다.XML 파일 폴더에서 XML 노드 값을 추출 하시겠습니까?
즉, 이러한 파일에는 모두 노드가 있습니다. 하나의 텍스트 파일에 모든 userid 값 목록이 필요합니다.
프로세스가 필요하지 않습니다. 한 번만 수행되므로 OSX/Unix에있는 파일 폴더에서 실행할 수있는 셸 스크립트를 찾으려고했습니다.
는XML 파일로 가득 찬 폴더가 있습니다. 각 노드에서 동일한 노드의 노드 값을 가져와이 값을 단일 텍스트 파일에 목록으로 써야합니다.XML 파일 폴더에서 XML 노드 값을 추출 하시겠습니까?
즉, 이러한 파일에는 모두 노드가 있습니다. 하나의 텍스트 파일에 모든 userid 값 목록이 필요합니다.
프로세스가 필요하지 않습니다. 한 번만 수행되므로 OSX/Unix에있는 파일 폴더에서 실행할 수있는 셸 스크립트를 찾으려고했습니다.
는이를 위해 펄을 사용할 수는, 이러한 파일
$ ls xml/*.xml
xml/1312537177.xml xml/1312537179.xml xml/1312537182.xml
말할 수 있습니다 이이 간단한 bash는 명령
$ for i in $(ls xml/*.xml); do cat $i | perl -M'XML::Bare' -e "local($/); print ((new XML::Bare(text => <STDIN>))->parse()->{'somenode'}{'userid'}{'value'});print \"\n\""; done;
1312537177
1312537179
1312537182
당신이 할 수를 사용하여 콘텐츠
$ cat xml/*.xml
<?xml version="1.0" encoding="UTF-8" ?>
<somenode><userid>1312537177</userid><otherstuff>fsadfadsf</otherstuff></somenode>
<?xml version="1.0" encoding="UTF-8" ?>
<somenode><userid>1312537179</userid><otherstuff>fsadfadsf</otherstuff></somenode>
<?xml version="1.0" encoding="UTF-8" ?>
<somenode><userid>1312537182</userid><otherstuff>fsadfadsf</otherstuff></somenode>
입니다 userid 노드의 내용을 가져옵니다.
물론 xml 구조에 맞게 명령을 변경해야합니다.
아직 컴퓨터에 XML :: Bare perl 모듈이 설치되어 있지 않은 경우이 모듈을 설치해야 할 수도 있습니다. XML의 구조가 고정되어 있지 않으면 find_node 함수 http://metacpan.org/pod/XML::Bare을 사용할 수 있습니다. (나는 perl v5.10.1을 설치했다)
희망이있다.
원하는 출력의 입력과 형식의 예가 도움이 될 것이다. –