75e301ba94a40010583f711e35500e25f03906ca
Tech/XmlStar.md
| ... | ... | @@ -34,4 +34,35 @@ Output: |
| 34 | 34 | foo bar |
| 35 | 35 | feed back |
| 36 | 36 | |
| 37 | +# Visual Studio Projects |
|
| 38 | +Must specify the namespace. Tidier to predifine it. |
|
| 39 | + |
|
| 40 | +``` |
|
| 41 | +# -N: predefine namespace |
|
| 42 | +xmlstarlet sel -N _=http://schemas.microsoft.com/developer/msbuild/2003 "//_:AdditionalLibraryDirectories" $PROJECT_FILE |
|
| 43 | +``` |
|
| 44 | + |
|
| 45 | +## Delete Project References |
|
| 46 | + |
|
| 47 | +``` |
|
| 48 | +# -L: inplace |
|
| 49 | +# -d: delete nodes where the @Include contains $dep |
|
| 50 | +dep=$1 |
|
| 51 | +xmlstarlet ed -L -N _=http://schemas.microsoft.com/developer/msbuild/2003 -d "//_:ProjectReference[contains(@Include,\"${dep}\")]" $PROJECT_FILE |
|
| 52 | +``` |
|
| 53 | + |
|
| 54 | +## Fix projects that don't inherit from parent |
|
| 55 | + |
|
| 56 | +``` |
|
| 57 | +# -u: update the element |
|
| 58 | +# -x: update with expression |
|
| 59 | +xmlstarlet ed -P -L -N _=http://schemas.microsoft.com/developer/msbuild/2003 \ |
|
| 60 | + -u "//_:AdditionalIncludeDirectories[not(contains(.,\"%(AdditionalIncludeDirectories)\"))]" \ |
|
| 61 | + -x "concat(.,\"%(AdditionalIncludeDirectories)\",';')" \ |
|
| 62 | + -u "//_:AdditionalLibraryDirectories[not(contains(.,\"%(AdditionalLibraryDirectories)\"))]" \ |
|
| 63 | + -x "concat(.,\"%(AdditionalLibraryDirectories)\",';')" \ |
|
| 64 | + $* |
|
| 65 | +``` |
|
| 66 | + |
|
| 67 | + |
|
| 37 | 68 | [1]: https://sourceforge.net/p/xmlstar/code/ci/master/tree/ |
| ... | ... | \ No newline at end of file |